From aaa310e32b181c73e8ce6c02f69ea4451d91c638 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 5 Dec 2018 10:13:24 +0100 Subject: [PATCH] UPdate NuGet NLog --- .../packages/NLog.4.5.11/.signature.p7s | Bin 0 -> 9490 bytes .../packages/NLog.4.5.11/NLog.4.5.11.nupkg | Bin 0 -> 3791407 bytes .../NLog.4.5.11/lib/monoandroid44/NLog.xml | 24212 ++++++++++++++ .../packages/NLog.4.5.11/lib/net35/NLog.xml | 26605 +++++++++++++++ .../NLog.4.5.11/lib/net40-client/NLog.xml | 26704 +++++++++++++++ .../packages/NLog.4.5.11/lib/net45/NLog.xml | 26901 ++++++++++++++++ .../NLog.4.5.11/lib/netstandard1.3/NLog.xml | 23386 ++++++++++++++ .../NLog.4.5.11/lib/netstandard1.5/NLog.xml | 24236 ++++++++++++++ .../NLog.4.5.11/lib/netstandard2.0/NLog.xml | 24947 ++++++++++++++ .../packages/NLog.4.5.11/lib/sl4/NLog.xml | 19755 ++++++++++++ .../packages/NLog.4.5.11/lib/sl5/NLog.xml | 19845 ++++++++++++ .../packages/NLog.4.5.11/lib/wp8/NLog.xml | 19021 +++++++++++ .../NLog.4.5.11/lib/xamarinios10/NLog.xml | 24112 ++++++++++++++ .../NLog.Schema.4.5.11/.signature.p7s | Bin 0 -> 9489 bytes .../NLog.Schema.4.5.11.nupkg | Bin 0 -> 40923 bytes .../NLog.Schema.4.5.11/content/NLog.xsd | 3168 ++ .../contentFiles/any/any/NLog.xsd | 3168 ++ 17 files changed, 266060 insertions(+) create mode 100644 MTC_Adapter/packages/NLog.4.5.11/.signature.p7s create mode 100644 MTC_Adapter/packages/NLog.4.5.11/NLog.4.5.11.nupkg create mode 100644 MTC_Adapter/packages/NLog.4.5.11/lib/monoandroid44/NLog.xml create mode 100644 MTC_Adapter/packages/NLog.4.5.11/lib/net35/NLog.xml create mode 100644 MTC_Adapter/packages/NLog.4.5.11/lib/net40-client/NLog.xml create mode 100644 MTC_Adapter/packages/NLog.4.5.11/lib/net45/NLog.xml create mode 100644 MTC_Adapter/packages/NLog.4.5.11/lib/netstandard1.3/NLog.xml create mode 100644 MTC_Adapter/packages/NLog.4.5.11/lib/netstandard1.5/NLog.xml create mode 100644 MTC_Adapter/packages/NLog.4.5.11/lib/netstandard2.0/NLog.xml create mode 100644 MTC_Adapter/packages/NLog.4.5.11/lib/sl4/NLog.xml create mode 100644 MTC_Adapter/packages/NLog.4.5.11/lib/sl5/NLog.xml create mode 100644 MTC_Adapter/packages/NLog.4.5.11/lib/wp8/NLog.xml create mode 100644 MTC_Adapter/packages/NLog.4.5.11/lib/xamarinios10/NLog.xml create mode 100644 MTC_Adapter/packages/NLog.Schema.4.5.11/.signature.p7s create mode 100644 MTC_Adapter/packages/NLog.Schema.4.5.11/NLog.Schema.4.5.11.nupkg create mode 100644 MTC_Adapter/packages/NLog.Schema.4.5.11/content/NLog.xsd create mode 100644 MTC_Adapter/packages/NLog.Schema.4.5.11/contentFiles/any/any/NLog.xsd diff --git a/MTC_Adapter/packages/NLog.4.5.11/.signature.p7s b/MTC_Adapter/packages/NLog.4.5.11/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..91ea03de540fb073f24d38d0368a5bfd0e83d990 GIT binary patch literal 9490 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 literal 0 HcmV?d00001 diff --git a/MTC_Adapter/packages/NLog.4.5.11/NLog.4.5.11.nupkg b/MTC_Adapter/packages/NLog.4.5.11/NLog.4.5.11.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..ef57ab5369010275d0b100bc5fbada20208b2ad3 GIT binary patch literal 3791407 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 z�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

lRUg$ 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

@6%zAFVHlU3?O*B7I3&1NwXbkTF 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

^4o`6DY8oTOP=YU-iq2>A9``q9;D`$< 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∈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%0Ao4dfUY+}5lr5v^(UoID4 zn=`9a?pqIS@`R&Vwt(dxHoU%#ZqqTSdWr(pAmD4!XL}ck-DJ~-TqGRPVCFmQyYTg# z(DNSFP@XRtR;wWFh+T&s9&D;5W@MBxIObrCe!5JFM@#VVZ#jBx&0Zxo@>@e*L;QF#Ps zsy`Z|;~2to6yeQ?!oUV&@)*ukk=2{G6(*mR1vFU3b1d~{Y&h)U`PIU6Jzm@p{W1Bc za+uDg|Eg?i%x)VPBPU)dBH)q~!6)JiexEC0XuDN(_{;gAh=h)p1sebBkUG*24SE3+ zzGVMrCu?0ED{9`%o92Z;%>hMZOCt&ld5(TOU(k3l&*6|FoC8&u z7j7hiZht9~6*KI*5>geNIj0(s-`B;}n!a*v4O)C(QpLO)PqJV-6n+uuzXANhM z%a5gl=7A<<@)!@9x}4)baE*kHixg0AKX9adgm-Ixm=-7?|KQ^P3zz)^CvPVf$zl}E zp(bw!s6EV3!Cn8BsQ!sm{=T@*)HKXB(G04z6V^oB(tG)Vue4O|Q)y1<<>AA)08{F4d}blPTQKN6}oA(2mWD zMb8Ioh_A-Hu>ge)hYp*LGfE(L1!Y|x0tYSyHYH1haMt$ik^&SibP8-zwgBUl)!79F zICQ`S`1l_$GFdps{Rj3M2pJbCAl{_YaF2TTYS;Y!O=MT`M6|-LU8_~=B@>jtkD{?C z<$vLN%-vBion`nDsOPhXN64471(T;M*nAsV_*}~1rVoN*~c7WltIbTs;ZhsgflAx0VGp5Uy> z!{NZ?z^3Ji@Xy-*z=8jFMwmri5`jVoj0cQM_%>@=OF4#*c8F_!A#op zmd^*9QYgsYuT1+%CGM&86U73Xf@Fly?>~WvJ>{9fs42;&QJ)~6KQeXO(FkJGBa1qKLYx} z`d`z2^cwE}U%gJ(;DY`SmIVsv=kb38^uMP4(<}df^*ZyTSCapl_D`=U|JAGOk6wRF zTlhDxzfal!N3Ujr$EETp4;lY?J?u9C{$sVr58RJl|C#m!_fN0+|D#vu+Wg%xRF7^l z#A+?hM(L3+TmM$aA>dmlg!F1s7~5eKJ}$NHRBunGjLc&Q`n^3L`Kyk_9)4i z>&JWTOmUca6#*;TE56V1Uw$SIW1;%r`jn+$yp=`!*}6WFT#nM}Ai_ z))OR??p_V?i!2TnpnPi+#|Ng*mdKG^z4#fK)&)>+HA(*M&HLA2n z7^EJ3lcFfPsIQplT^G44qfClz z6c5+}dW>6-|4U-#XE0}prErxTLk=10!ycl^th+FT4)t1ec&s=o5-Og|W6OhED-?pi zXuBfSa}!L>2mX*Q9cm@xTq-3EId(MOblc1j_#GcIA<7;v)|W2QWM8%oBHaHdfUwVp zFn=>I0rnY%8YOaie;h%Y%w~T#EWJZgkb+Hw{>MHq1PAVJS(lO3I&QOc4$9niwh8;#9u(A9rbzk zrGBGj{<#H_gN+Ph0Lf}ps1nDI4NgtIE0j%Rl6^Netb)b4Ooa*_)r z^Xn_xA~l=8RTxjBJ=}uj_s9d0b4_fHW6k~KY)vpAcO7tBj1l#=Mhj0ZMkcgJpive^ zVj7C6suRR7-|cNRy5-o+b|`H&r$jZ1-Nf2dlKvVQ z#hi{Y2JdT(goy5Y0wQDxhe0lr}0363i1ZlZh#hM2 zK`{S}d?2B-%05n-`Mxb^ClF&$kppFvy{|L*e4CEZvbI8x16Hh&{)|F>P}L7$V!R#s zLE(Ja0YiS9R&*J+|FdGP4@{>VrpL4-hGTd;^NV1{rz+-{VjjXegsOQJjCmLxFw-l@ zcR`vs=Fe_+u15pp{n^9!~q6=|l!>0FX5 zBh+qqK)v6`SGf|aoc%gJ;C|@k%gPVDGs&K`Cnd3_Bq@PY??2b_4 z3zko%!LLpA?99HuH&Pc1KJ>=tf^7mXY+Wii0f036)x$5`5r@fcuU+pfDMf{?=>muR z36PEK>y5x=bP7`3roV^W`6sFFgpdn{`GMPE0MT~1EOCC9q109k&Cg9S2C9O}jJvDp z;8;*;y~M~w3o--k1tmysWMu>M_HwN>Lhp3265bB~EWZiJUl1wG210&5A}L?W1-5m%JJdv>G z_N;BXfIevjitUe`00NN7ZeN~peQhll{-6K_rMCn-j~fWkK!l>J@C4NH_IO%;f~FTg zOCPbtu_rXv?)p2;cHjL1#w8#FDLsEWfN0I0X^s_@+bl`}kN_)Xu2E36I02xGq(|U#yd>uxfhN{>z?-WMGjFdh(g%w;fG(TO{b% zME%c1osC%t%;-wxD7e$yBZ!4UpvV%*byZ_anw${6d4Mkod|%HiZ|pJl;q+03Ob;B3 zd4SU=#aC3oP*G-k2^M3K;~YxKv#I&O-IH=7p(rw1wkd;9OPb9}=0BOeCiw;j?4Q>f zaVO`(qBNsOT6Bx^(qsDzJ^kWVW1_5S{TvB@_F~pc16(&i!C!Sdw)-b7(NlAzc9xnH z1}d(A1X<0c%}%#m`tlTr(syS&t^)3TSQcol=rfq1$3tN#Orr&PL6XjC{hp+Ymw_ma za1wCX_C8$&B7FsLT>BGw^nU_j*0YMRZ2b$ZK^r)(pg5~rpU=x_QFKB)}PVK1n zD(xAHtGE`e|329U5(|H70=MNB#lkBB0ZHRdZ=|XzqfhvvXx7=q#dBq(gA5kw7d=>(E=zO3ws>bg8*0q3yJ``yVx?0w>@q<>Va43>nHcC)kd+Iu_Oy*`-5W=JAAwKQ z>zU!YldbwY_^gyP-jkKF77o-giSpb@rNpw?WfcB>!SmrQYIV0=qG+Vs223aENy`(f zsF6fqD~xcN_F|_e?n%R$>0%se@aGd5hhF!xYte2!5i6y;B{mRmrHxi}rR=e?w;0Un z8dMSM^*@P8KA)&YM6~N~zhe@QQGK4%;D1b5=R{EhQv8J0>HmL)Xj`@jX(R! z(|dxu*=4c8y7V%9SMA}FlDs^ctPhZOCAjg<=-ElPaLG?F3&Gp-u!*o z5l1cnoEX-YoUdduePmmH{nmWRhN6t>SIsVVs$%#Bh|I~&{}w+s8a|u|bp%=JNA>41 zF8^<;{%x#SOme-s5rMKyDA0hK2Lf2W6y-J*&B3~pw3Tb_m=XvXehBm%!!{g$nJCN% z>prz!L$^tr-&kcKDqpt*`WNsD)*kWo*{mynR;Y0>KVDOkq}P#Lgv1;>xwOik!d3(f zWX$32RlcAZN+oDuVt2MhrQMmgb@_aTb)_iYKka7t4q}1$mMpFmM*Pglaa`LFP0gBL zN$WUo=qOE3j;KlHqb*Fpm>nl$SCe`9{Ip(OV|y1|YY>N-Z+?r`)B)kPd6zVq5saW4 zW?cEj9YadVrC=IG2yl_MQi!(`o<^vb6K&twA?6~qPK;kFtRmRIxrfhlH4z6l5a$`;!mz%skt_@Jy#<>`}! z4a*{&Am{e?HVc)J3G+zjs6Pu+1>Y zS6}Zq>1_N^vUpEArn#mPprXN1J()* z-YpUshlh7Iw$?H?h_!S3o&#b6(K58%!Hgfge>cl{SguC6hJ{P^Yqx7B=K^3EtzHIO z6ANMe4mYe|bB|mUa~}u^YPBnP#w9-~%qTih*r6T!sESL<=I9dY_9j-6nDRJXY-4qO z#92i@JbtJe1e>#DuD4?}r19T%CHZG(qo;JL`UIE`MWTp~^`n?{SeB&?BQnvuC9Wu^ z45^jgkdm))=Yzx2N(EW^fNSxOzlmyRgbIKNQ=2?#-$%;;Kzx_G6he zyUhJEhY7jwFyvW_C8OBc{|{t9o4?5liJ1(o?FuujW#{7>c~7$SowW)=IAAI;_>X~* z%Z~H^oj65_4UO@&ERnF}3V~_YZ*_YC<`C>8Goj*bDFMSLoHV+CMFD?<{sf|i4$yV> z6CKx;oGGe-ux|akzK_`$^=`$1@YQWt3R&c~oZ5kfdOn55J8|a+?ZQL~l?YG7rnLLZ zhu+dooY-sW{Z&n?i%yT&K8`a@^_yYR^L!lpJ2Te-RG)=`X$5R&bh%%H24F88mW1S0 zhC5!gXu2N8W#uSISe5eujmLc&8uu%h6f`+D#mGtx(c8HR+a*h#OBg* zsx;q0fjJ0HluJ+&8dMI>X9eZ2$4BZ{ft?ayF~`xe}rHJ!tjfv+b<{=P^|}C0bC1i8<5^2nQDmQW%p~ETo1gLO zAzXPsfpsKmptNEKxO7&*TsK1y-z9_9Qn*uGd-CiujuWM4s2~AQ$OURhga*&zouF=V zp}i2^it>tI{zgW{HDVVnS!kqg!n`+2Q@i-uwkxkAJtc0AUSFGE?8Rz9$U^R+no?0O zT-CmZN^YS+-}Q+uyxIi@m0tTcZU`)!0jpRs zSzam~(vn~B8#lRL^n}yJAQ91%o*DniB`U0)A%jviMWGQzu8nUDXRZpmBC^}6L|tH9 z!I(>rhBY4M9_#{sAda7@dxI|+ACb2wYwf{*ZoMeNfpop|CwLv=I?uyw_zGl5OKhc@()=?P^GI z+DAeyBclr$#-?ZiGnB1HX1inzD-w4Kp&-d^N0#NZFcS#&FWWThB*w&jpSQx!M_~#3 zv+!?(|Jk<09hiQ8)Qcz-Is8 zdzK&vqh!T6XCgZUKBxT>s4E5EHDpQUlUi~11O$Z`AQ;puVOGn5lqzOSQ1bPGf7ZDx zSW$WETj@5&-?W+{ARcZ|S37!rmb|Wz{LJzec)YQc=Tw{ z{f#>N@6uG;V8rm#$dK~r!Qz=uI$Yz<1t34hiDnHh_4C)EJ_pbQKeC$i~ zHALv-B1R!}XhJAO{eg<2x-cG|K)QYKc3&VR7cmN?Lla0T>JL;P)rIje1XBJHhqPb8ZR=C;436UPLCEe@^hT1S$@+DNZe#pYSG*xl$Ss*e*-2$FA>xg$RzO8LYNe%e zxSi_VL1(%7h%scuQ=JJ*S^#x!s^sb;eltjI5)4$sy3+TfBU01U=aPV|GT zF);fBOk;mZg;-Mp&61u|Xt*yhUIq>NGf<_&bSU@QTJ-AfAW2qMWhaIDhTSVMw{4?y zvZ!CeB@sP9-AI^V!gnLCXID>7rgEVwd4uA!yI_oV&hKFI9h{?hi2oQ`bypl6#m4cE zx992zM?#{DSf;|t0w4PH%%CKm1mClQ1|ni?>YC78p%r-r%ksJxxR zQVlIHF@9@UQ3qZ#7>Q+Ao%JTaZfm`jgjZhww*wN`bx9i8)G9AdLtO|``oi|gfZW|w z8R_pUv92Ra^2mwm5U0vM`oPMZ-N9)l^kogbVB4dXbvgaBHfxx!frxf(fW_qBX?hO~ z_vP9UZ?3rWp>D#Jlp=gl#9D8z7m}R^F}J{g5bTwRWvzX(fECs}Y4*~QT}mIOx*R&2 zwAjgMud(a!G|@ElTwOG@R?43niSG?LfN^S=R0+hKo;sdoI&m3W4iEk$#1hdnwP|rM zc6#U(Lrhg~a+POD`x5rlazzE|7AVwMLCDq6x(2`;zPYNBN;cM1;t*nxeP6qx5!2xY zluoYT0QyMrOS+8I9E+C%1!wv#QRyP0gE}j}^E^lBr?5o!hZNPz$g6kjrKr-Q*VmYZ zi^aG66^m0$vj|pqESST@B%C;DThbx1lvTA`Yz142*&7kwSOCGaI2*f~CUTRl1I0)- zt}o6F8-~kQwAZ!F!U5T7;jug(Z;_c>-~H_jHFq4gjRJ z(z>It);wai$^fWK)@oksJtOOm({3UJ4DJaEY;7<*l`UuD~f zdZubkWES_I$yCFjv9O(qJ;M-v+ZEG9>CJR=lN9WeH;ZNXs8w_5idAx1XfnW}8RmMd z7^Z{Rd^}-;y2UjXFnwraIbishu7mKoD(;Z?$#5(NxoGJEkgW7rQ0@-Kl(ke?$E7>0 ztm(C$y2dsk^ZHyH<a!*2sH&i1;_Zed z?!actPCLt?0i9IVYj@>PrzyJrjXSjA9m;2MFQ-e?_+;p(OU#4qsGNYuD*l%!h0SqT z0V3BxMI+)FTJNJ0T;!|4iUe{hcw=Y-wjb~A(?f#shHRz!D* z_F3=DxMKrKQT6IHxFw9aeg&=2gzZyx`?le?*|KqEYoiNZSA^M~SAme)^&atE3hQ|AfF#*cLRYTJlnyDK0CsHAWLBz!3>;E);aI@NTG;=M;hYPs zS-+x~PTD%&k_!~-MW)j8lyTqj++DNn=eeOF4LU1I2Xe0+(!FuK0(QZ{P1|Y)%Gezm zY*@$Hg&j6pW(Kq^8#U0>*o6mgrOA+_U3Y$#K)d1KN)fS5=Whl*eG+<0C+0}#ArX4q z%iUr1AU95f3PBI9f^<5=W{*LaySGK}fxbCDyWk!5Ds)M=o;(blP^vNBZp_EuWEldIny;~lnJ25tmxq$Bv=AtUJ)By;IyXGbcX&#WK z;l%-@sueiahS4!`U`Hdk2|dCc4YW*EQt{}QqbNjSX8T-a;^^d?Uyrgi0A@Y<-i(*2)zD z978~jqhF7jUuumr5?*baZ>i{FDLg;TRjE$-71hS`0-ItK9cd-714WlWHcsbLo$Ki7 z(h6uTZ^mk};3Q$bfDx~_-f94pl9$yMIP%P~@7=|^vdYmLWqf&pZL(EU<`?>0nm{72 zIpWomqMiLsO)f1vX5PZ3%-7a8&H$1x3epz2R6;fR0Eb37P2NQv-K@EZ#ka8mc;s$Z z@#8TY1LZKF*D%ABkw&q$Ce5U~{{=_HrS?e>npjy$9=UWV1AnXcd_i(G3P^{WXdtXr zXnz*;Zo{Hh;qc~@y{v{pJf+~HY#@HT&e{lkfgEqLi2(+b5rlZ+EQINPW4tt!G)8bv zK))r-OpGfIvoM_io}h056D43v-Cj;WxZoqLNr5L|&FKc#K`L%Ua= z1e6>1xcqx-^RGn}{&6GU{OHBf;UByY>_{A4$DuAYN6lUt!1z&iHHC$mql#_{03ck} zh)_ov?gLYQV&_;zRMA&iTopT3QuvBSz*5$yRLZ)KMQ>2<(~mc(`uc=luh;j1hw7St z%mUJ^nX&i90fu>0Weli7@KKrf-CYrT#cfx!yQ>@Ie28un>#ri|$138BTQH#EyULb0 z$({rp^RIhl-;zPKQ0{`=@UUez#t=Q#d-9`g0FOFtZ3&%0 z&8vx3_dtNL6mQ(sqNIbh?ZSoF4lg|GdAnfnPJ0rUm<^s>Nx1GD@uU?fYaA>9<8f^5 z{_0ibkdtN1LGpTjZv%JmVcEkO5Aw@fY4<6M?GW)gdI36h!k58*#nB!j9h(xHffD5q zV9=#6q>nZ>qGoLK#~5-&HlU>G{h6VxqlK20R#p#!*`BJuXxD;Xi;f2~P!`T$Wnl-w z*~&Rl`nt4=xgMzOAlR)ryw)fWR2LZ=kMBSKrG_(#6jmk85ka|wnXFb-)=tlpXPzAL z=(YZ7VMlHuEJ_fY9>{$NED2YQK;yJsCQiIFVCE{Cc?T+4hNy|t0M02FWV|)G!W!+r zR2%l!lUBHdJt7H-&Q3Xw(lq9Zc8M zx7$LOMpVI|g4^zscuceyPB`{M)4vyC(w{?vG`U7;+b+Lf+$MV0NIwV_)Co?|kOU_% zNgCO>kWEU6fXvArs>oIu9O~-1+~ly-kOg$0lk})zx-gKd0qcVEDRpP@6qDm*MG`=m_g1jUw$?Ir}4`8 z*7)Vsm#k@2Z}GU!2nmdZB5+^)<16~_zsmQ%E_#n10Zh0O2J0UP*M?P4AR!#upB}kL z6k3I)x%bY;fR+iq@<^JcFF*mu=o|dwBicpKxB0E{BEywY`KgT3enjcqo=fG<=zM-K z{b}Tz%(@mb=zb%?`t?^FdbV;WS`1jiafI%~Z^bP3yXakHqu(Zf$-NuF_YWe0gz+D_ zSO4vKezR>a#nAazF2dO2uY?%8$U!85&>&Ozod+TVWW)?Z-Y9ZCBh1pn(tQIP9l0`o z0aJ%Psf#CL1PTRt8|TzM-8IWp$Y`-^E>%(mJXxchuhGrrN%(8c&yfXxt*CsO5&lnN zv7yv+U9Fs+*H$tsYmH8%Flf9y=Y84W#jFY+tfe#DB+3a{;mS2qa$8D%6n87zDeri% zRAtmN;X_J}@?7Wf8<5c4^(fHs#%0ucmGqv7o12=U*^<QYu6!*Kw$k_FHs`L1;O3X>$B;UbA@3Rc~agn{F-cZ^cpYJWW^FbIc8j|Ngs;( zX^lO;)OixbM`9zb<2Ery45MD|(>lOo8B`~!E|xX72_5E6ZH}@OM)AcG9C?(TH^6k-ibki4oC;KdS7 zHiI{3XrLu5;MC8_H90YUfSZ}aMM~5q{ujEf{i=|~-%pGS533navMxTR2w;uOw-g3j zv4+wz2Yg&Hd`!RbsOsaW(&M1SDzvEb#`jf%f$}U?BGJ|-YzFKNnMIkiNuI47&KE`U z3tE$B(a}5YV-Xd79JeWFH~zmb6gfKE+cETOF4z=VQZGL69UeJqjv9ME@=V_*J>RtZ zgSq$M>J%HYnYr}%Mq|8n*YvG7^hdHnY99(8Wl*mgrvt`O5Kj09ts3bYyt*glcjTr$ z@7gzOiCHsc!D>*w2lY*~(#7>%jX2!R;mfekq_6#=kaQznpY9A!}+X;}d;jc=ayZ*Sfg z8}``_GJ7-R?rF;?4NsDJnlKZ`ieSBxO=Sm1CNV=(hvMpJitgyqj|y(cq7NtRTleVX zcCmevfm0XOcw; zvjHT}ouC}GXNHZT28oRkvFCRD9`((Ur7bIPcnxN(!c1+p8QZ`a5m(;W7-iBUi`-&k zL54;eR07L%Oy4+G+<_5o#=9TizNMgvfB@#YX2%j5>N}@V(yEM2MwUpjMBKnH%@)bK zCAmVCme@)btYxL7=Z6b8)Cc@G*Cwh5g6Uf`Rwx36BDzI=81 z>cz`{HC}%G&2N75%~!ABtvCb}uqJ||Z(n8sDV{OKUvbC7O3cpxmELRCTCk{SKYJkg zE*}xWmHWXA=UQJ(#d6J?UFDFWJ??u+C>q|j1Ilho6&yl7gTIYtl=47s-d`iuN zBRA9?b8WAob?hlell_AI>H|j1dlsP$BR}dJI^Sv6{(lF$Xld>Lj>`VSrKYQr{~sd! zOm4lU%B<2uRTO6sdP@UFh%DoGsMC8QV1Fk?AluqqAd*$UabP*<#HeSmNH0+K%&WOR zsdYEDJULzz5r*@~U;&&i2unED0DEKKY?HH*m}m@zY&P-spyqgO3P5qTgHs7Hmx_yaNd?1 z)<|^3HZW8j)h;(iXcOzLw4GC{mVA(3w2|1D0J{>n(H`9jHQ5c{=`OEPaz4L`JRu8I^o!-`WVBv^k7nq^g9AaiTw^-1kqK~%`9G8@7R z8)Dc99hu3uK!?)ANWV&`S5mubLOnAjqnRp*JhuvoT&=o^YExA49Ddxds@3^FS&)nc#E+JGRMX*>$JV6^&WWZFmx^{@y!o_V@ z?JuQR65>-eG{FZ!vU+eNxl;?;H#`mWT3ZJ0e&2QVR=uU@&SN7h$ds><1f3M1wK`We zFUkv?MH`i#487VUQ8PA*9kDsU)dz-#<7HVP(mhbO#*`8n6%VqoZlp0?`I)k(QAA>a zYN_Y@+nU0O)ov~*M=v)KBybh=K0xgPlmD_Be7?@N7QqbIWaL7tv$2VIyq^_+Z4Swm z7X?`w^fq~SAhK@}s;xydSq(P9K~JhB)PBV1-z@t^tVbt zUCRLA0~ztD&ojg)Xd86WUFj>B2SF}+4;*{FFl}lIOx?#UZz&AZ^1T2)LDtuo|80-g ze>orrD^N)fWoTE_G9wopkR5gONc)iu-0p;BqIw0-bNK*dbKj;X48P)~&7Ih$_NhbO_@x zT!dUnOgjv?gP#$?$Q98@U~yG3)UOb>wvq9j7lz(qOMI}QYsay%g#oK|t5pWn!!lm2 zUHoXn8juaEkWx*WvUW4n2L1&onc4R%pF~;Z0xePPnhP$=%qcDR}C>l(}a*rK1r2FNdJcIi%!Tq60R)xG)Gm?{%Mq08xteGq{TD6B*hWg)k5#^F6c&fYn+@~M`O&Xl=f zP@#P_ZawmMQh{swYBj2Eqw2Q5sv7_T|Gn3aH@pgs2hYb~BHES61Wv(5lw;!7!|XL1 z*xL>)42noQ8Q2GJx>%3I!OmQWdSCo~1^g3aT5WNFj)Nm-3t8u26tfuy5PlZUV=@{C zne+(PY)F?e@CsIMap_1~y9{X!pJXT7N>PijFXgV9^wPv%ADa=C1!6L$dc7(yGlq{v zjQmBico;_{DK)`To=cM3cEB|B>l|Hj0k^V~+?j99fymtN97NZ(H`R68-pG(LW{L+B z+Z)ngvWFX$5e!swo@Pp?Uv7pTL<%rJP)@t#6~Ar-;iHp)ojpVgFF?1Dg%>HcJZyN3 zOP<^JbJ%6_ldhKc(Q_R5SvNkE-_9=1I1V$5qdsFm#K3s+0$1l6PhOrFlgZ@7c=E2R zwO!~}xxe5pxfzlfa#)ay*oE7N+aa7xclV1~yN z;|Dm9;fd|8Lh%eW3_*ujhxj;irxiJxP=m1(K^beO->-lyz+^)(LoGdS`Ha*_d#_rMLL{S|7?AiFVHom`6>}I|88~{q$#z&}fc@m#AXn7GNN0M3=ECH4^p>*e zP+*)h>1kiydY^>0`QZI$;rsSfu-by9?6}b-Zfn>>coRZhhVEwoOYSmJRJrjDKjkL8 z50vnbnuSA;PZH7kt043ilKA}B%tRJQ+srJ$H6iG$c)e7k6N6=tm&6+`g?>3PatH%3 z5pC%?eo6ld|8Q)GaZV7&Qys@6^Ekgxf0-%1nO%wfnT~{5M&-tDco~NIV1m%NeuQza z3E{=dm?&qFIKvN)x#aWu#r@lJqE=~LPaXAJ!NK}>WGmM)4rEcnVa_OvsIdfkQF=(g()y}M9 z5RDPzdLfogk8WlZRF}G(qoQ*s;3*<16m=REnOQiuX`Wk#qjSd#L?tDNz6g{GboXei zmY}7f7|)B0_760b*^}=6qu->2%57qL*CXmhKst;&W?P(wo{*#2l)#}&TJy9b%?Jab zu?OUF?xZH&hW@Qx^mZ;R8GUWbD$@qs8&)DRKTy}mLfcLx6l83vrP^4d2?Y;y9HRyX zRVo**|PBZMxMmh%b!jwCL8qbaG zdxEYdLqzg*dm`W%{6qm+Xd(E2xJ>Fk4|;8(`R(X~Ub(SQkz7 zlBFGmg^)`WUmX%fv+^b(oc|5ZyS4VuZY?0{{2LQqdQ zlZ^Eh*~jEO}@#ArtE(!2ji&EXuL~ z(OuJUO!xlVqyM~qdnA2+-yX>Y1MqxfwoC}{2m@^vX5VM|i z$kGyGxSHR?)rhIQGrH)N@O^HqD_Uf4_7e}xHrsmX^)s#fd(nwy}y0) zjd3+I9$`WquojSHFPK+saoyH~Ko_`=Sg=cwAhCn`! z{}k>bh%bCk$}_HEKyxRjB+IYmn-5NQ&%d!Tv(gAaELwAf<;M#c%s1Ttjhr|ULK2al zvBpyUC*PzZ7t9CAN5~J7nCaO9k0o{vKrZYgP1KmG11Pz3JPQl$!|j9iwvE2`Q*@;R z1G-%P#6a)lVp&kBA;%B}_Jpd3Sz2PZ9uHS?P_z*dw{C^q#l)2?Sglu@;tBFPPFei- z(d%~@Vjw|~?A*Xv4&o9nrQ9Cv+;b`zhT&aca*GF0Rf{crT(w6!n-gFYE_P-prxrU#t7dvi-2E}|kt1Tw9__`hLq176K3-`#T8>Ke5jE;pfg z@|{C9fwT}!?=rfL<0miZpGKTco58$*m48RYRJ0()*FpHfr78*SZ@Yx{dtV6M2xS8I z9zRIH``d1@d;Vxv0vF#;LE9;IKZmf9Om+cTCyCipvh3~T4wH_84V}~ZO zpnt+pd`z^r^3k#t<7^)0f;=ke9TcbQFOc0uc0(T9*j@ZlM#jzaem)=HEciBPL z26&_&pQ(bcxa1n-_m{g z*Cm!5f6EC7x&bzGZ{Sg2F-D=-U5- zrg$iJ=NZv}aA}DLHJ(S$-}pY-M54b~v=B;*H=bU(Q}G49d_Vh$I&73f{WMYL+eFZ_ z0RlH5ol!)AgrWkMm@P4bO-zD{(vXq6pMUk$?_U1qUw`-Fxs-+Ir$2?=a;kn82;FHq z!c#u9-Ba@vq{7sD2u=gxf41SJ!jNj*eo9`-Ab`oj#(oaoEF_5jWCttLxd~TO+j~9} zVv5?y^Qj0i5bXJ@7r*(}SHJx_1te^cJM15DYM**p_-qgZ0^wW0&A>k8ChYyQT_enZq#)qMiK)549=3&c0d;aWz+Z;TIe4aU`T<9(JNVey>k0)$5M zg|~dfIba)s)-}n(ffq;`WeJGGis|w=m#wz~b0#n%L*AAECWCOJP?L=62(rh3!PRF4 zs4nXAVN%E;dIO`cJYariu)^&3Ao`PW$`Cwopoz?<;UJM)@g@9-K=@CCyw+jR z-)VQ?-*05|4=OMrn;A@4^yAS?tKb8kZsmCJqqyW65IhQTBR}A2*XG>Ua)B4?@>04H z$J9~URW)E>Vxklul>Tq_PTV zU&v=?pFu$27HS@$<|_0~Exa8hbY)r}a+{hr!>y;rg-vZug6M4(91erLaX;I@ywtqp zM-W0+7}#%8JqP1k;}TV9vX#1ER5tDvs{pqND^+wWqn%2<&4D=I$W+IF{slX`U|#jF|A3#dU(Pox z6quG7h;Q-cM$f6r1pXwq`L8nft^vulnF{s7%0?3Dl8BzS75=uCyfIZOU9gkHOhDI~ zyJ6epxWpBiJ6R;s%vNqL(X91_B(g*6*sr90BWJgwYmiVWLJ8j(UPO#+`d8{Q0$V|4 zW5^o$sXf8(%p6mvawR=qn_?ORTHf1WQ=p^*iZAWzxRWIx(3s_N7$l}6VU37OETo0? zo(haq&B{z7&#lKEt9r7NhM;_U8l(o!vAWq?xLY2*riOeRJSuN$%|+4v1V?{OkMs{& z=MCi*f+qCUD>hEgR!#+TT}_e|Eud@FqY#N5IC0C@o~c;5JO0|OQAy9U`-tUMVjr3FIM+1(}`cR5Q%s$*^a1!OZiE5D^#Z3^Vff1+qq@BSW?jUKJ%cmLL6?n6DoEn zPg={v5{AHL3$&oKIm%d3=~qmk0!olC2q|$wAJ9C;xoOSm>Wn7Y9VF4MeiPjsn-@rn z17Yl+=JGF<+C%9XXb6??fJ`7b1*myW)-t*aNV>XrVJn@R+U=z)Ajzh&4ZNMI_F|v{ zleJp6Rr1i#b$C%Ag=pC4Fp%m;=d`jO!e<$OT&Rdpu$2t^kir=c0mL33X>eA;AsIeS zjQ1{kXk{&fdgpOU3EMR`_7MEYn2#eugGut;3Vj|8Iw+OnUb{*{Qm6J4GatQ{5sAvGfKC>y6+%gtoBA*| zQBXw(r7_+rAS(WdtA=f7bjISd8g~EY+AhgM}O5=SEoo#~Z@x^T$N8GQKQfuUo-g#@Q}I zbT6V_>PEHcRn@|%_aM#TF@SIshk^=Ca$q1?69U)pyGz&KHpbv_|>b9E(ArAzR5dMc1Cfx!lvd;`N$>dmi}h@R4&9e| z+G&W-o84G+w#r)==tj%oNH}HAKyjw)-Cg&%F^o%OYLwSJ7156JSOjE*>Ik z)kji<40M0IdH+t|YFwRz3zh+QFBYb{6-P+j2{GL)BZY%_%r@>VMX*;n*FSLM(TVY6 zur76A1Cn(5mo>At=tu52Rj>clM>f@?nwsT0)0O@MY_wOE_2_wW0}>DO?vtZZaR#{r z#oL=46w#WeyeXP-HdIG%I-M)^WyJu^9U(w+Bu@o`%C7?nF+biF3MRuJS>OC_Wjk;d zYPVL+(kqNn3wPiIxs;7#O1FM~KQ(2qQVtphapEaSE1@M&rIz1~zb|mPKbXP%Mufkl zru?;*>w9F@wwN_F04*-KazB{iJh|Qgk-UV5#_`!_&z>6AqvhBZz&(RoAga=i=PjS< zVPL7oR?#5z$T%iD!!snVFW^tX&Pei4_VRzNyif!so9l5Y&b_I2JkUGO_&W_}xI#>2 z&t|@4!$=zC4VzikRqzg5nc0?t|2VTAwZ4jd!V`_Mb19C?g??d-Qa$=|Q*9ZZ#soxm4p_nogaqdxU&O-vMBI)Ua3(d#b3Y3b z05vF`60sMFQ$Q|KgUVbt;wrHMjgM$a;z!rEh{t4sQ`d7(&A_s4tZI);g3T}PgaJYm zUMuS@t(YOk6^b?qNn4!qy$C<}-ZH3nVgH`JG?=$&W4&pMy{4S6hFhTix!XbN71`k6 z0ssD97GFKHD)a&1m$Ug1A+WZqViuM46eQU_1xTaxF*8g~FPdMXmoa_7Fwx%_H)-Wo z^0H*R7`IDm1|W9M3%3oR(~fjl{>0}DD}18mUOdpZ0)w-_-<-3D83#@kE8mm zO9!_$Y}7bzvA2a?*dRE3?H-8yw$iQT`X`#oYW%RkEXLRU!gP-2$JzmW-8SAhuZRN3^C=98mGcOP`VWk%8_YXDj}CloR*N)*smuu=0m&tQu}yf+Yy9DxG7$9gygS9p8+Y0yPOyM- z4;cB-1V+>knpn7087^@Zd8%H4X&-VV(zF(;z6%HGQSLiNSmmlKT+ww(d|7hIa!S*n ztQyK5Cv-(6dj^BF@5H_Bp6Q;|XkoY$>`z^Kft|D*>GDekYnV5qqR7^c5Rn&H&NzLE zxQcGXw2t>KA!Pp4*==nTJ}ab3%C7R%BfMt&?yfi6N&SmZl&{s|tTL%Th%Eb|7and^WlDA3tD@aprmPt+A+{ZY{x{%?$nb)V=iIbwxWt zPK08`5LqJ6-%{vrcQHihe}eJ7RmgWl9X}6%!s*dRukmN;og;f7kE~OF7bcHYWzAWS zUUP^(mdKOKm$GzbV(~bta_Xv3SdBr0NG>%naHr?sBYb9C73Jz$8Ok!x`)s3Q3aeb4 zN@|`ePNb@`T&b|&uLiaB3eq!9SKQ1fZFj)e1Bp{bf>V~)nA@-ly*M2}xWHIePST`* zlY#sBrcj1KMvqGcBmNU&d#4F3KmYPOtSVUW@{9cIdEHq52-vIuq(^T}T6drTFr!wy z70a)P0oY|k)z8r765Wb3<}Hp`GvRgLN7rNe&$Oe{b9~3fY7XvZ-1#=#DNVA(#1|%#< zC+Qzm_Y!*ovg4O0zhbO`9Zs^FCj-Tr&CJ^oM#BB5o+%`#{gj+K*PSgM<4JOqnq&N@ z?ij`~wgHss5?Qq_9x=Hrq=zTCe}*#QBrbc|G0IN|xKPd17-H7vZL^UZSkZe&S3mZk_v} z#ApOtz^C}{HM-(9;cwO5sO&SoATj*jnW}^MxQ^c<+NHQjJ!hIx?PHs}zSPfAtOIlZ zI+7+00_^D!`}_uxck>=1~*(MlZvWI`uLZ z=ls;|@AoEeTjm-=)rQMNdX}m;i#l6AyVJYAS$rTPoOT5SAYHs{L^dxRZ>{9eC#zip z0GE4E8Q{q~&(*&1c<$4f(%plK_Dx;Bo=$H)`8DP<`j5sVeBB9{WPq&?=K??P1kelf zu@0D1)7EO7vOR$4ny8ORP{}$XIQdStpg4Ws38*)4@2E$029>|>Y8!0@Du3SzsJAN- zYz3t0eaHAo*!R~zJZ;4(xLMPx}`u0}9^7q|H0~6HI?c{+Rp(Wi4ji&!$ zySi!>W>%n9g}M~x3$=qo1=Qq6_mk^A=tgLBCwfjWa!l&tj@~F#UsqZ6wQ*2C$|<$) zk`lrWuy`ghpv#2vbxqLdxw8L#hnJ8Ud(2h0!dex33Rty?LbF&T3*+d}=1=#5wkn|^ zz%>h@)uDB+T;Y_ia58MV(#}~Rj6l9?N|Og)D`m0j%m5Uw zweUXUm%g{)3$Yz&7Zp%kbeD zCt}R`o+YL$UtY8M1Gs3Pq=yH_{v^aQbK%bqPp&bHumw0K#`)X}gz@S(+}{K3PZVN` zmm}vfvP8l_k=3H5BU55oo_l9^z#`b9?Mhp*#(RY0Zs$z!RGVRK`$wrLlzQBtsh4iS*}`1wA&35#0;qO^~wU_WwTH zo-8Q_NG^bSFSRglTiSpMr@)I!KOomg;;@5wVLlqNjz+{v0W<$xkXS|cmUi1j#t9H}^2KuSweazdeoIj7uM@C+n*R9Ol0I=&@H zemP=R$BeUDRz3+s=!=B7sMt_R`9Cmne;>ot)?31Na`c{J|wye(r)r{pLnNmH=i5P*z=YmF;f8jj!O) zUgsHrepEnc*F)gdPA_|0S{~w4S>YTB<_pFWcvYp6z*`57KfE70sgSYL@^_e%oze-> zdX#g1A13zA=B`K32AXRQ(QSpy2AvJLyjn=Ak2{gQwg!-oh=r)Iegzt!67iJQ8o-ya zed(F?hOLR2TqAE=c)`y}(k=mOt&`_R$H>vryDDUMqC0^tfS-0nqEiGjISZ_-x{XW8 zWr-^2i-JyYjqHO5o+lhz$;m)v9WR`5jA^f!hPvL(b?aw@MS>_>LUIEm(?vCdY6tUB zxQ-Ay17{?ND#X%rOn35p*e9`nev-r`j5z`;AfO6HJWgOUc25DLm>Tcm`we{o$~mNux02-B*q7|&v!9qKpry~ zLyN_LABiCz_V{M_v+v_Yel1qeKONCyU$Fe#k94xZ-xBD-3uDX{3^GM#6G*;4*~kcA z3%>AGQ_iU$&eJ+!+4*3+)dcQc9&MsAg0_`2_Y-?ouO}%Wg$-oP&Cc zcUX%O{AS~L6o5fXyT#K8WO8W)-vkWk1juB?RV29vt};PhN-s@kQ1+DQaiek_lPX)I zUwKp9FkEL5$92n8Q!NY`g~1@9j#9uk@~LzRxVt7@w1Z2edCOl%5Ceh_=ql^~ z1pD{~#R3QE3$ABrS#q%h(RLxsvezhuQ3_F(WmMy;P7kfe0;070al4tRoFi&k$ zMq99eS*1FGmlTedQ9hZVd5h>?>I6#YwXOu)uH=Nv4|NNOpg~x+vtLTdOcjjg$P0>t zVMR%IrQnecnObe#d@EYTX^`cNqX0gaLX*SN1NJ2asg6*H?g^ZiIo?5|^=ww$F0#I|b@e6P~1?hmDZpeD& z*=JKD-i7j)aQ*~CA;6Rb$i=%uyh6+MfY>ZwWtDOR1pgGnc(M2qgp7vH2^d+97){cGzR5FyVEhujeEKVCH7K@GNY8dB4at?Nad->Jj%in5)j%3aWl;?{H zLG?LWZ6!btWHo6mORxYSa!eP90U&Q$T@{_npfWR=YJvNRveO7Y`C_E_O#tlN_??6Oj+-ig0~zDy`A#gHw zGnd3+04ihpfiM@*^eWNmGEU_cj<+v4qo^$}g_~|O*ZY9C8UW8D6a^0SIC$(dj=1jw zrQr6gb9-ud4p>N};^KTRir66LPo@ALS%4Eno>)6|0U%e!z@V7;;*3KQ4mw9^3o+?=d6ud0gIydcvOhp>;`Bg}7sQ7R(|Ppg>Acz^)bNhiP9AookL45P+RrmPQB2E5Qni zIEP$&b3o|R9@|B^n@#|vg&`BKm!We4o$kpwB<{#1Tmfr&`4uH+1q3jJ`^ui_Z@-(D z8>KF#xfse|lSAhv!1dD$zZ)g32K%})*w@jx>tMgB4E9aZd9dGC2K!AmT{75kIIJOL zLpG3ocFuNX3#U16KE$osI6SHt_X+u2RPhW#frMkNR77fDYE3fy16)(}%j{3coOk|A zgD~yB=Om05l0;+1>gQI4;EvRqStuNm4R1QH@JhnT=$j99IKr0o1IeFfE~O)t;dA$X z168S5S6#qx;y5l0#~xtG(*;hn>6qj*y&RDAy_%jMTc^uR zb+qpa;D1YIKNXZ0jP$L85nV+@W`D{vjnY8ynD|;OFN`0AI`a@g7$70RWDY2ebkG3} z>pk`S$W4McMNcUnDX4UkUqf53m{h__aG})giiD(`7cd-t`<-`O_K!e%Mad0d=2~*& z5Ayi-k$FLzCe+T&AJEqj&DnI+RkC?;WC=Ne^gp8y0)8}i!40sU0De;h>#(4iw_Q%f zMI~HS5t99&x;RN#Re67wf^LvwaSxfe;%;(Sbt)Tx=sAs{tEvM~$-n;fFEt)( zmGni4q1+`!gEkaPAdeORHOOpGar(<+>81KzH?VpBm0 z$|Pd+{>B(6pS5OL_AQLtl;uc9Fa-j(SAY`&yQjWFZ^vE>hBweX@oA9y89-M#XWl+ok&q|EtKrOSr1Eb;XT^D zBkK!ICl}H?NSj2l-OLYe?WVnk|6i`nt7BAQ=%)^a85kg_A z2_Z&Tzl+~PE760RURn~811g8@k=F4&xcbJINh7imrQjTZZz4A&TtEOqeSi<)wNm+3swy&MO`d^UZGw)jw$ddhQ}s5xb6jCuMl!SB4{&p&Ts)HM z*g*d((8a1b#-#v}hm;x1+IWPT${u3EZ0pM(Bfb@{c&^Rwxk_`M=gAyE&&2%Y&XBN4 z3$Y>{3==T|q*V7&rP6v|4oW@b><><-jcV8@k}akS4dNSJS`=^-@4G1+Y++J9JHC_k zLl9<`A2)Xo_^h@avw%<1MdTgePlPTv6AA!+0#%$rL=_CS`~HT~|1lX+TG+C#kerUz z2h8XZSe_5<8h$)Y;s_9iJnidtyLZPyddLPf!c)P01ch@&LO(9${Goi7Z1N*z}ylyT>$1ikW zhxn(^e}FBDZ2Xb{P$+jA{#{>ycQrh~pu$CVO_>6!%`^FrR5~Z)WQb=!g6lU=ttZEY zu0fkXfYz~SjlC!~n#2?EyQEZK&8V0+i(7>kZt1tx5TS5Cq--25D8>l?#*}Aa?c`pD z_@r>Dn8R>+q(7MiUI1|l^4IGlZd&INLci6@@rfeW9V$AhRCQ_UZNErxiJzykauv<4 zTQn(cS3sT4@t_BjC9Zc>mLepu*l8+|xDoG0*Sl(RNSoM8XBUe#l4%u*D%GGNntXNSN%PBZa&QQjJVth7Q1R%QX!R zM6^2%#XwlJS->gxLL^{pDx-*HoH&bF!Vh#n|=UYIq-(G#Y@@hm$jtWlC57Q z&o&^=#0H#b>{!)$n}~oNI7j~!CJ?+ELUu{(6R(Pcypa{(BqBQDN*SHYz}6ZQnD zNUX3!CZy3zwqut|vPq#NafX&3W=Ucq3%-+M9D@S+k~hNxsBxqWr5e$7+^JAj=SUhI zam=3`HVec72odE^(t2HXaEp1qu9NuP$8*D`pZ@t~M;~qq~F) ztc1n_?{`u|WA8#_Zc%&3TS%{2MP~T*jOMD(jc0`zIWh; zTty|ZaTk-6ukyH*?|1&EjAL%E@&MAcn!AcBM7dm*od@zAdtUC+X8SoiVXi3VTrHraEb+?`GAiW2RsBuPgJu>-Mh z?v-2%*VnUfvOZK6*T)*v*D@IDyU@35*q}O!Poy`is4>x_{NzB-*hWH4tbVY7wjeSl_ zk*|R)!92r-%FHa6sz2qLlk(Id-;(Os$Q3oF84?c(V(?D0XN$`-%caIv{A>h)qDZ7hxQbSrP7Y1A?U4@S--ts?AOaLzZ9367WS$?San)yw}p z{OX&-uf9g-jCvpZh}w-0WL+v^-NO{j3GmN~k$#IsR>ny3b=9$){|yWN-!&8ZL${`X z&HR5B1K2B{+f~_!gNB3gDvlxkVc$UMWBh@2pCT(z)}2ufm8?)v`GT+!B(i1pL-8m! zO8q$xl5TOA=6l?m`W|FS!OPp+>Av#q7LJU<727r+1lGq@bO@4!bb`yrVkT?Lg(B&q zK?kY4Qp+g2@*iMHOjwAU{*y983rOn?DK%1^;tbfn@@$osGpBK-ze!K|$AdfrAN$(8 zs28-!*Op(KmnQbr3#Anq#26S`jDP4nmjd_tg-hO;dwDjz;m zX=xleXg{H&r|32GdcNR;o1!U#sQUmU=jfoFkgTtR1=7ba`VUByWc6Cd(q8$%5*pPt zslZ04(M5{G>3{OQyhV!wJN=>vOgx>;y*Qc5CY6_O;VD7|{yXm&>~YyE4jXn*UpMWC z{U4OKF*FSlVgf!EHjOGM>*lM`v#6E3rn+KFR^L!oQdK^@0vFLWf`aRjd($=8Ds->Z zx#Gq&N|gqPX$+ZPfo^ZGSb$;>G)fES6=j`>$?Z%|Z2OSz>4~Xl9S{+1jodDWsxNi| zm)DVH-}ue2Q%ywvvo>V+k)4HB7lF#cJgqaaGD<4X@{ivlRFW+Z%Qq1h2hlvw4uSm! zfKv$yqniXN>5_mu1YJHtgezj)-2-enf{xl3ssn1dd~1}8o4Il0#Whbtw-3A)WHRpkd$--VP3+01aj#epvh!6mDUimD+oVtG0(g$H^7 zRUYVUXCe`=&}YXt?t_8YQ;J={uZj>?aiMbh2b0b~Ju~EzeD!`h+KP%N8-I$uZAPPF zCv#*zJwUkVR!rx-(j$vSx@w?aRswM*FP;G)ZB)!DhSZpw+WO^lc+$kWUORgXkv$#F!AHYe(Tl-`DRO=qOUp>D?r*mduXpV)zcq z1CF?kuy7Mb9d?BaEVX*W9{CM(ysdm&sWMcb9akJLw7QftP~^%>U=bUrSs+xFZkDsY zb+l_iL?Loig4W5;sd3=~Zl4aP-!C!V(rHyV-u+4Oy6~Q=k^(6S)dC2Tr~CbDQb5w> zIUsF;$`K-Q++o0m-rh!8w4-N6d~wo!tqjO=Kkn@)zNd)(tVvpt9TUM&tsLTP=up+^ig4XV9*d)r>MH5A*F%E4-N+oh{X z(v164z(Gig?h#57{@02ssXMLiE?~q<1zRHLSBk1q4#8mooW+>Plp5P}(gofk#04kO z_*KmLr46tMpug&$bhxX?U^DJ2V7gKRq4n-Bi9x~QOF>f9A!2MKosrt)Q7r~tUid-E z|7-070dHvs=4XqAJ8#bC;exKc1?SMoOHh1bzEEYv6YPviWg$rFdbw>bP0XiLMld~0 zx!crZP~x2=w0AM#*1I%E#PT3h2f3J>#@ImDDd}UHyh(dGx96HS z4dMD(Ix!H{b+ptL?h=(a#fZJok|o$v;ez3UNm7#vqeu0O?{aPpxVY)FV~{tdV#b*p z7UFwWhS|Mr514Ba;~tnnZb>I>&kEJ|eOQ2%egALGoGxTldNVlGyJn%h}LIWUoI3*Z@># zwr+cI>%&5waR5OmED8nyL(`ZPKszU@Q00HDXORZ1% zP1djgKj^Sr7|kpvlBp`8UG7rNVA!38G$m|+R0u|!T#y>>e|G%ZWY{38u;?zB2ro1K zfUnGY23m_@)+pT9Bx~t1N_^^7qVzCE(Hrj#Gxf{}TfWIV@!MSuzqLkhw{?UtOuMid zC&7K5lpx<_!e&8d*YWZ+6WsFPmXv(J+VHg^msK98(z3){xFAqsop8Gsg~hM|5ULVw zhw`7zYHl|*$h=+ zQVb4&1X0}!RVr08wTVZx=2w##L-o&VoV{dO`m1ePk6WdaE9qiBfiYg4N*x$i!)Tya z0Ob|+}ymGbN^iw00e}sO(_%lqC+?Jf^pTEJai z#ScRt)NpYR%3fT8^Kx{_d!UG^2c3g|yjWTXeiALX8;|y~q9Pn?)=9N&8h%R@7b^aZ z@8t<}$hin+f$a(XF@6viNkV-Hv9#G8je^XX#zp=Zd<-uwcq?)4V+sk7)I1a_FqA$lUH`Aa1Jt-?9p%|YkE@E4)^*e{v<+|z8lgp1;wx8 z$o7n$#h5ZpXe1as42x6S$4uWYpQ+of`DRwiI53B6YG|;Di5K0X=zeXz3L(ys)Y=t& zfZEQBRg0_S==N|um6nGWQy(su<#$+3oH@S71o@5;=1AqGz=eY!+W1$Z>TcdO>`{>* z+(SM=iRy2Xc(x8Cl2H=W>~bt!<`5+ZS1K0frSllNcgR3rKA(q>pHxmxiYPIu`xccZ z4%E*4Pg(AUO*o|`Wnv&ECj_dn6yTa1IPm}Z`gi=yE6vP7M<0Z1g|PF$0WMyU23eg? zePteT8_ME|9yAiTiLQ-_3jQb0=g!=w+IN!N=a8s&ooCmR8)z~9TK*K7IpO732w5b_ z6zOPuZq&>AWAS+YkJmrv*!AaN$?pbBzO(lBV)+mR3LfHCdnSF4kmQjlZ=5;!^7e@6 zC5K?TAh{3ARR_u!<`?8rbn-64cD@gD1b{!c3aN(nob}FQC!9W1K+s z?sLBX9$D$@>Q_*=)=PeTm5zst(y@7QnYRx^r z3RatrnB~sMbzR5@r4a6Y!9oT7(M_kP_J(}1W@_#Zw??%!R?CH!Tvp459+(}upyfai z;RBfC7~aQ;xWi^?xtk?IshLf%uwIncfg@I1h4)TyyztU)(V#PiCBtgTLM{|n^%55l zVK|!OY4W4P-sxgM$hK!yb*M6fOxE$TqG66$ZmzaehL|7!q)8L8zdpzZS?Oa-9&<$V zveqW{$D;lC0A4o{+llY1=^@chYrD$B@W!7A?M%EzQ`pSs?`kwfAU~9Yz^Ae+BLv$j zQ`&$M#|+)+W-Y3+bbgk|KOD}|cfyUxmCax2iEseSSL@z1*anzGGRBhk)T!h6W^|=0 zIvc!zjL@vC8^;BQf{rakeAPG@$Z_;t4{`dkE6e!vltTcv(HV~Q!3BU=h%$u0edzIz zPI?h;FXubaE}OUMCW7{Mlo_775&r>JdC_)gChRvcJ@|1rJiimFWW}_i$f8l8l9n(R}xxf0m!p(A3(+g?hNyB(XUe7=$M|#*sS_B@&jvwpuM}PaU1iP4R6#^ zlPpwCB(FA7v+5ORxA}Y?!)BPSGEGc@1fv%0MJ3Fzt5Q|E7BAf(l)XZ%j>auERtC$G z>!Yw)nm-fcF!$eH-o1q#&0;UMwmbz*h5U`3Dbi<}W%KmgqoaGFljNhJP*IK|@k;v7 zL+~Luf_Wdx?ipvXhi*qUej^8#=)4!d6YryetI9CKV^>(btn@|Btd0!$$a%%B+ zF3*+{Wrx#j7Ct+cS+g`3NPYb7$UPpEw0vrm2$m$&ykL^xLd^fuw-rBdd4_15LW$Y; z&;ELO@ysFl4@uFup!A3)nI4@Q6M?KvB-+t!0KYpzE}+SRZn=sMAm`jvY@W{`D_EsN z^uYQ)2ligr#z_w5>?J01=rb_Ki#hWR6wfh=g%Q|EwG;)nG0?E;BX75Rp=yc=+<7k! zCIVn$sU7SGQ5H;dkm{{=;`G-%*#c!GZ-J-uw+tIKc_<1!1eWm4*&`Ip#cX`{mm0(e|$qK>B2dXdHX@K4`OG1~k=)86udV{(oEc_$~`16cge0L^*IgD*#N}FZ(yWj6pKWUpLuiqzPj}uIpmuOaA z97P;Y!TG1e5eEfqU6tApDF>H{c;?y2O#|;)cQvSr^nt0_<86q0L8t~@(LmfO?#F{ zY7lU)YUJ*jdcOhc4g2H1IO(kZK|o4Eo?w7Zm)Zd&u!%bhyHwi8FDT<7P+vl z{0u(6B_xvGZ4%ALBwskGFdVUmT*7% zj!7d@jwF!2>I4vqIfNUOLjTzx@sa>iVmldVggZsgSM3KNl(n7T!t2tZhSN;RI z5Z;T6<5hC!-k(PsFf7>DqSuFUKn*Qh9oY*f#ZkiVMhT=Vxc9An?AOr6eTq=GDczIJ z;7(-@`4Vp)U{ zL=%8QbspRR-eph51~aKG4V%M92*FH=xu-&b5-P$;x`@0ksQNdA1})?Fhyh0M?#hgY z}$q@5+@^rg+zSaU8GQ9K20kA;=aCSJcpxZ#$Q@`XJ)i(c&tmfh zkdHD0_Yc}&=#YNnph~+hvVw_gI<}3)&kK7N{?AeLx7?ZvTYRl zD=1mhm9uj@8m2a-6`}GB6j_7H2o8<^w(V!Zx21;GiSr=vdYh&$t{MaWsSQC*h_-<1 zt8ckPLxs;yQJp(z*e})5;vD=i^jmvi?#yf-SSbf0Rq|Oi1?Q(P}l zaTIjRq52WMB9)DwH#j4XFkDT|B7_YRBnV)kpxwJ%#!as}-tL(b<`o5-$Z_^(e^EVh z6{0rclCVhp;1k;YeG=z@vNjY3G;~kE4^;*%D{WfHmu-jg%NoepWIGfmj+hZN1meyV zN0V(Z8wkwh-r}g?^znrCN^)wqL&0guy>}3hBo=;^2jIeLys0|%o}qWj(>a!>RpJZa zi%0b04!oR>#N|bA;F8)_4aMp&R(l6X~=t zDFy6Veq>fR+irJ%{ZPk>QnGiIIwlz9X~EHaY>@@D?f+wu>9+R4t1FLQb@-%s#M~`$ zLGsl8s}JnwOMfP=$5sX;yGo1-3#>rayj9}Xnc>K|e7y<)09=y5|LAV6unJ%NR9e-x z5(LTiR8_UhauwPFo4Tq#%2l+ZzrBJLUEX|tH4^LZ!48U6KJP8T&$m^!qHm}8qBWdp zScG~~=iY_rXyFmG+(Iin$+Z|&i|;&z#Fi>o5UM#9H_2Oxdt+-*YKTOF0L4HX+1ko1 zw|E^?Dbz*;^|sb^I?wKs0QmWe=CF(wfttADD#Fd^!BlUgXkA?|PW@Ld z)U2CuqPnfSet%SMiQ}pgrzPoNHFHw`VxX$WK}mDgy^{2C5P+MocU-x=T+Q~G=(~x< zl0q*JrGJ?$AXz%MS7d6G%B@_2@IYDu4NEh0_i?&X992sawPYv;%Yv|Hqm;CNgaUSXu%G2%Fxi8T-+xSpFJFH3LVQ2} zWKIJCANFDY8ttL2ySYpE=yseMyLKe6v1t5!Q*PQ01e5mg2}YU!-I#PhxS46Wxl(=TlON~jL`b|?< z%fpqbZ7n`(!y6l_GqI&@57e{0)7By1x+dByH?>tpU^_<8wTrYaFi7FBvWCfkns|Om zDM_6JD%QjlmRX$nFUlmjbR$dv(X2L5T^QfqPdqz(=yjO@h_JKE9e1GD3x0(fimQFA z@tM6UiuqcyI>j`#M}*g~Mlo}behHiX?y*YmZ2}oyr2?=9^579dk480si3sT^Pn1-$ zhN#$`2t{gc>xyFAS-y@%%>YS9)%2-@uK|elAj-)y0HTgu??XQV8D-o)UurFPL?_i3 zvm>518wEJ8KH2uBbSAs3`@Cca0D5x33rUF|Vol-_%6wUc*ONxKn%-^ok}E$0K<`!x zc?}eQ{E-n!A{uW~?q8nnlkc~s@0aQJ=Qo&@WKvKZ)=80bso7C$%*8>02-r-krT27JC6l5j>E?C_iGl9pzaN9*F}k z-o*dIdnHzO>SnN8PEaa11`dH`I-@*u0M*Bt#}9ro$wLIW5=?Z6J$bV@4k;?B zd=u{>Rt#p9La4DYaD)j!CHz1fnhT9bi^ozYU05MV67NQnH=(lc!AzXg#H-oqTOsNF zD4oXQ-*S(y^K71H!~0-jvAKYi@U3$`frbc)+_A*iRp`|Qp8=x^#wEozo=lK<17{pZ z&og8P*i6|2rF8fb82`DrK;SIE?-&(?Y(IRr{z{3JgqxNMSyeV7Uk3;SlRg9hT_C0; zILHw@5v2&@#l0#OM=_yMCE*4U%s%=@$VBv0^KEHN>`|F#CWd#%jP1njYDOVotSRgw zz*vax4&*oEzfD?ay4!Oypp_-<|}SLAh0Ph(NX zb#Ci#NNGS;49Xf>9+pQ8gX7EtxNhhM$;?nn$<`=Z~J-XwGu5AR_Z{Woh4{<~#^|8AYZ z^KqF(aDCU4Xy8=da~p)>t_y?vDOmz7UtLc$F@q+et@*xsI`aE|=k)wSR-V-h#X-II z@dO__Ki=KF<%V@{uW#=_V;C(NCS5kpt<6A3l@szt9NXLLledTD5`FMTfan+qf-nWh zoadSP&U=4!%Rgw)mTe*6P7Cd;@1ze?mi^iH=f%tVM^yhH#@BVpcrMlnkc6nE&*L-= zpuKumm;Bb~#2AhnXqQ1S0}%mH0>la;B1Pj;{ZD5SQ5xum$y2nA?RqQ96$25NUK7%J z@S{L0e{ZDGlDy{n-L$GD+aXym-A@b)aVvDd?!7`j1+#os^vVE8vq0zwixwDqyCFbv zzE53mx)v31)vOq50?C7M#kEFQ+T#1-I~g(t`}KoA&me*Rqu&{m{aIC5J!7gpd->I~ zUb&`tRcAF-a*b-gTMRjLzH+`7s*e24-c#f{D&BN0E}lskKXj#w>nZo4mKdM8AH>Q6 zVlU|tnz5T#@soIH85Zx-ZCpcEZS9s6Q~pct=euqqA6yE^+0s4s|AN(Ze!n*vFsS?vR)bg%n{%)>)R2RH)PM4$vIchf66fCfNx6 zXt+qlN>*Y-(zM4;8bj`e*t2d(Tub*$2=Z58ecZ)sf^Dd*KQv}c4Da=r7V;ySnAM;c zEQGS^hJ8Sm8HCalK&fGzwDHv3X{tqBXcX8JB2&S+8ap_ zJS7fG;&>)AgHXHgV?E1GPp2buVy}tEJbo`p(aScbv>UIJ#5%5fLY0nmk zpHkBf6O75#lNmOr9oNr(dnpSI)Z1j8L(`hO*4t7pine=e)fsONoT6#nn+B+OeE1Xv zrPj?eW>`5YYckFSCjN3Zl&xvfI{R3y<0%2TZ340)-BS+oE_0BJZRnDQyvLcUUgAE4 zUv7$OA4!%aDZK-w<+IJ|>t`=^kZt+-Zw-FFt%S?+ww^~`n2&w<{LIbV{_}7GdI72> zhg>P|IsT{2k0?=H{DxA%Q*SD0vxfG#2xE7=K`mRRsm|vu48n?j&5sN9$PdS*W{}Uh zU2+l#%~M=nI^v?t7ZA^%#WOeP-hX^+lw#(B+QnOFR=F|e!m`8^$_x$&qX4dH4KnG4 z)LR2V`D8|yVpWDBaVqrk^ptQ7p<|913B!uXg3u0IbQ#?_8LzfW#w%YaCkEKZiM2FzUIS2c5wrnm z3?;@wc+bSGCS6*L_42~L(f#`8Xss}o?qaH5#HxvfSmK}lItwv3=|Z)sL@#QP5(b2j z%w*SeY8$k%bl9?^EN=Db)N|zBt$Aw8wV|83$+xH8+|IK3Ne=aD87C25VvVB}g>EnJ-a4-Fv@;Wr zZ=%Yiexk#x*cw#mDlW}+d$WAyrh#oh5`XI)!rhsuGz@4h@E|PcEfO{hXSRgBySQ{t zdM9m(Q(NiXT6vBXoDhZ$ z_oUf#8a(up9(Ofq&^@kkohV*Zz0Oe4SSCy@hV~1nNVC_<&%k@-1xbDYan7r zhV4tmeV7vpMi6Bnrb1!f!eFWN6@qU*9wIW^v2_d+4Y zWLNu-JU!OVE1qjE&Qo_*X(P}}%o@ytRQt&zfgrEV<^y()FinW{To6?qUnMJ6{mA|7 z^Ic576l=>50ffZOYM2*>t52o=B!!vSNe)-his1iFdVTf!&{4WO%s@@+2Tu*hRoa-W zoNs3dt$>h%L9x9^f8wJ`jdVFV?0dLr1X0Z*i=5tdNRlcipd4(Y^jL!Kc8(ZuO9^HT z_x331^`sU`O65FpYi>N@=k|DKb~iTo-YbO^ z<5E^d(fSq2Y?EL-Mn{l#G|W-gXas9$Ugn$%R8R+upG}akCp{GRy}0sg2)Y(!aC(lR znQoLe_&$mz-MW*WNwthj17I?j%||B{?}lqAs?^Dxh_la}$zhPfS_MBIWEUs#NBCB} zAV{3}A=2E@95wd6sT&1p8KTqt>sRkjZm!O+e)yGhDvktH%MrmOei`0&YA*Ujz)a>w zrN(5;@t4nRb-cI{GT}2tNM-X=aaXsp?BxW{4Bxx*F za%4DwhnAlGu^Zj{i4bl*+E_b0<@V+kU_<@NxgMoLo6GzG>XE>rYUAl`WT8~85=R*a zFP8C|JR*@{lN3TRt&`LS$OjZOQoC3HSPDznQ#^Sne5KFt}%5{p}=N2X1fOH(_ZgzuUp-7eG7~7%eOB(Y;W7A3vsg- z;_exLe`Vg2M)-69`aJ-bzW5(}ZGo@R-JZtLQs=;n=VF`}1S9^Dd#_;)QWl@SMw1ZU#ZtwG{cQzd3z(51lbHvd zH-^SewGF|g328!c%T5Gi)POsc^w`vA#D>hPdX!M`t_a#mN0&^)?kz}nMa(} zj*c5^1!}tYICtVRdDiY^wSZMeAF4KR^l}3=KyL?z2yJeY?1%(Y|J=7sCpg`^udfv|Mtk&`ZC zyA37GB&-gUN++SVq>p;35}kHcCsp3A*7Z?ag4r#T>pW%X?*0)P^gV~)KG2KgX9qIT z_a0Noxf&poY1{a6XKa-9LXUTwfXn(s5yr|q&ZAbDvE8WR@tgL6EVVq%dhX)AQ065X zpdD2dL4`2S+#pO*%C9;@`g_D7>S0;65~F5WTdRI;CTy?GXxgp2q!rYt)7z7y>yidP zuS(RrQtgYnz^oMUiuzs|=6Om-zc)Euw^@A^{uGP1q-V9hglD&*s*<|J_t!v3cI;Ml zvToY2nU9D(jQ;t0HqRD6!Q{J83Y9nL9tWfFUB=ES&y}bZbGbP3wJ<>FcvF{9`^!hG zr{v3%`bNomFzI0N+_^A>eRf-2o?V;{#DB$q5dIbP<*T#PO{p9ftj$Rig1ag>5Y_-z zeXyG$f-az}LSpFChrhN$o~>Wa`ZJP@Z#w2GuiqHtm+b`W;M@Dy;Z4oA4kvw|=Ua

rjaHov1|}|K9W= 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 z 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%0DitRDN$D0~E7PS$p+{w0 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¨$TEvkTHf%xn?@qYA=+o{~d@MI0NWV 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⩔M_&&-%e&AhM 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%0A6dP($%cyN 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%0D&!KSWFGtQq<5DKsI87_a_?JEwy^*m^ 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

b83sI{< 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

z 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

t^w-Hkf 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

}aeqjRj;6oh1Wmm^xp194NT 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≪WZkv*&#knLixtmhS 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

^_&DH7!vBRE!HQdLD4xMQUz`x7(CkD1J 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


s)e5fRh?w^&2OWK_1b1PC?L0!?Pp7gY4bAx9)p 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Ð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%0Do<+LD3E<)b{=w1u;^>xP5R zL{C&0NP(E6rCN#pl8mL3%Zswd_YJBo@w(vy>VWQqb$L3L*$_j2_PuF4PqxrHn49W(4%cj7rNg_f7gdnWb`Z~gkl-$6kF%gcq1(0Q&`gU5kRZrnN z;!#)&gfU>m5t&dK^<(BJDV!VhTz4@83xAC9SD6`Y5{~kLFu&o|Q#Xk7OE`?Sv=U6U zV!R2Gis@HDr?xi^gnuu+WC(1I+R0j$H}VDwX&kSWIlAbBZQiS4C7R!a zC!%;Y@;zSh3L+2P92TD-8bm-|P_$rrUYg-u6tBNEO=XyRZlX^ERplx23A#Xxspm|x zrV$<~6w>w}#u(>&wySvm4{nkEijuMDj7^V@lpG=Pmu{*NogGxke+)Ak*xyOnXN( zNc(hMVDCVD%#urY5rl{m9~OY>L152pyb27x z44fh<@{<^k0Is9IhBIe$3PN_mAU=D96FVTtU*Xa1^Vf&?++T$=M<89tp=Zq_9*+6C z(7v9RBr;*Xj2PZKnA54^VF-2G443ie6etonvK6gwCDY{xO21gZg=-maONz)|*w#oA z?UKeP6P8^YS?Dk%&)76e#w0)b(H0Mfoxm2O#qmy{P4LceQgWPh1!7L3Y6rxZsKA&G z&fibbHs=Kz_pri}!Y%n~%i>K-y0ILS7|6*t`F&?+-t~e4^pP?sk*y~3IB^_|i<{U1 zSbLQAhK`*079l+dLKz1@6b7-*&KGE;+cO2!;l5oDjt_P)cg*FD0HOivX;UIicxoe* zbGLK$$_*#zQhsyp`6QS-qs+639eREjm=H8`ZHUmq1MfD02L7UREOY_?rU9SHQ~O|s zX6g>$;;(ih5FnEU+X~dXIH>iE{MM{GW3 zD3?$j1rM!teG`}qeFCxLrVg(vLjjXA4iC;fZ&lzdKXyg2vBpR5)^=6&Ec;r2@SOrb zD&q9Lc{{pN&lv9v`0q&Ck38Xb#nETdhkFHb-v}pjY*AJZv3!rd5lGf@MxI9)=q+@ zOYR`sT@cW9Sry;A^F7yFa8k8;KfYgj5f=eacUe;Q3QQFP#!ZZoVG!TLP#DY_(B#Kt zg$5BN>mNt?@5W?7oRyq2F%3m&%VYr8GolePK6W$UJbQOksRBa|@T}+Ph8xJIISw+p z4-P3Nj;Vn_KCN6QR!})Jt-A{#-fQvO0x#n+<>}X7UmZpoha;okg3|Rc@1I6^)Ru(6QojC8QfifDl#};wyGB!&_^jL#{SsMN6j3XMf?! z)G!%_Iw_QXFhoEgu!M0)DOK_ik$0CWt80q#g%l2uxFC0t)?7geaOx_U;{iO%p)>@_ z-{-nyk8YhL>E9e2-%up$l+(O$yFjbaW9!(4Km+gN-7`T6gJv0k1>~N4-ONi89LiiN zC~$a^3jh!RVuYRa9Cs!hKV!@`m1~)3EyhZ$z{*S)CBaGPl;-3$9C9V*B2i<=4ZnT8 z6}jtDI?tOU+$8WN9HKlys@Fy&&u|IW;3^i}RRpq6i#zoeZpbL%FEGE;4I8Gd#LBm% zo0=)*lH`Gyyk8!+K_FlOa!kE4J|b9+mnfTFV0Jf3Cl-qF=A}F{{t5a`T&1rH8LY!% zYDv{Gr8cr^1eqUroLq$rN217Uwb}S|kYme@!+#!3pWqa7X+!uOYffaAujZ+TR4~Bo z2DlZDhz+zN#;@;q#3Su4OKc`HXsQSeeEf-;_LIXIqv!ZGK8 ze!kH*;y{O<%Abgl~*GyXwaarRW>n#=94)VPp|cPuFH1|u~|zSAb7LVG*_a#C&s`8l^# ziLh3b3;`6UFn6&2z|+MwO6mgDhvTq~+XbBI$@7g&HwxwqFvc))8mC@X-i@3CS$R8X z6y(D$&$#SawQhiV53cV8sQj}r7Tb%<5UxA4KH5R}yL=#eL;K``=@f=}(%6f`hk;4@ zo%|{~k+9CdR!$}<-s8`kb`678ri!VaKR8x( zUlW$8t}Wdc^uTAT7J1=LJ$=WQF9NLF%HrI+y+wV6D^c?KzVgIt##x@+ge)&j&m_NJ zZ;)vlTUZ^B%FLkUj#Vl+WzveMDU}Gg9^5aF4bIlA!r+b^i6t+5Vg%?ApOw>bHmEfl zadNo028-{|$%+1FohQUuu(PPhM(UDZ}<)Aq7xx^TsSsNN$=R)k9R zpwL#mF`!`v_60T{5LDSB?c*q_XUt}Y&EW3Tn`no? z$ZCit`laqTM;VQ;N{C$r@HImp8NtF1qmriNVIm*d9S2I^dOqNL#+Q&-_fTpeSW(`f zZYy%-G{z`b6me_22o71<$E#c<21n!=@#`u!qxQo#x5AOCw1_VL#5I6Sw)pkeZ~hbi zqbn|W{4kJZcxC((T385iVCgZ zj}+8Oj;R^C=VHN1tss13hWDXyQa|T+n{?KD6v*=1!iIP7kWDqvfOW=KbWjmdyo>d3AAF_?9gNP@+ z$8?ktgn3=1E{b^YwMa?MtPr%oSV3nQ^KHBc9leMd>)`k&zPpX@2_y}x8nAKqEtg36iBPQV$>l7AyrHoh12L0V)BMP z7~v9Y(JiP#*mU7I%hjq#k@S)C@?{NQ1^Cge55Yx=7j-=(afb)?$Q7aS?dboj;ku`c zSd*XLd!8dqcaU;}l-oke*|#oW@)Q7kkm5VM!KR-G_}`^CNlrm!nCRz0oDSl2N5m;E z;vX>4x3$XE%+{29N758ZUp%UDtkzkLgR9)mEf7S2QOqrTlnf0uMxF? zf&;|0a2PM0Kt+zM@F!{?d3}3$}~k#y2hC8FVvD%6Qw&^udhsQJu_5ihvK6 zvzP$VX(H9LwU%^^4LkcF#*5oFc19DmxifT%wXrdrr_Fs~`S&*Vh4ZwzFUl-zV`DT? zn>#xFAwD9+D{%8s1uk$E}|GnCCw67fXb$--9V2`Ptr>3GoUL^;4 z)fP#9TTGJhzt;mtTJYVawM0JIK00vNSv)v!3Q@G%C}~oHoHLUMT4~Lw9(Me_EjTm%dqLG z$7VGSdS&J8yuSu>>iX!fpW$MT3At9hHZxjHa`4>@zMEYj_M$;r_TA{HX?v@dwPxb< z)P1uC3;nWpcHV(Q6_NYsz~NHOg9E1!MZ1lXCZ$^nSiN!JBq7&|1BWKuQ3p;6h5dEl zY{?CS11E{@!GW_|R!A)<9~?M?183zREjw@|Ne&L2!GW_2#9lN=%MKhJHEnOzverzT zo;q;WV4+|3&dxh<{@t=dPq)?LMbr&6z!rg_Z5cdMpk!=%bi;DYp!q&oS0WIh<`%96 zQy82uQ~P$svWZ+}BUWq>JCTn!-pdUB`G^!*ri&R+aUf)`<(ci;GvJ(5`?6xc!7Az& zk0$mNJ-(RYut?GgrakAyt7TH^C9vHQP98V2Q&6Re1FiShJVVY^k_~`|HO~(#9Q7?-gmcgegU}b|Ojn4h9-ja0 zEqueA&mCF_NT1mvkbQ&I_=#Uf^*8@a!je(lIY0$nAM7$bN$u|rkO?mRtd98)wt4G% z0h}2DFex`mXhEEw+tpZ<77j2P9`;mWU((Sf!&3ZdugFBC|hSY zHqdJb^1o(w2-Ua=HjoD41lx?KXoW>|<6Dk2(Hral{S%zYh)!6wu6{>Y^o5qH&RwQi zyMEwlk_O{nn%4T@pTm>}(29${r2i!zq_RorutNAT(&YBbzrO*^`-#>j{R1lj-ka;t zEcDyB63q_E=mSNjUDS8!DnP=>xs6(;lzk$T?R-m5p2&K0lV8JO&>5WG(9Cwh&Yni6aBO^=_nwWm_gGlwA|M}20yWFI&~|~RQLVU{?vqo< zw(f-WbrquJfqDGaIu88>Aj>*lyYBA{4{h%UI}k?(yfihPfZifM506zJQa-$^bBi4#4X~xn0$4%OesCR1u0vD-U=_v3W-Sbz$PrQ#d5koTS#*==_YC*d!=knfK zc?v7nCEjlV?#NeF0?_17t)|cBR1R1X`3hH~DC^$D|BDnBsi3pGWj&n~blm0K_vXS6 zmld{#sCT^(QH@Sn#Pm^20yuhlJ)jrec@yK##McZlox-V<15X7{tq!5wh{upUwvEtA zk$Q9SWfaef;HpMP(fd!4l49WO0xiKmCqV#@JIfzI!%rO1S7Pc2G6F~HiPFlmDPJ`1 zd2G7IB>|+qke4gBHi&CO%~ORe)Kq+WL=yvX0A{Obt~V*L!JlV%qTr?V`vu@e_nPFy zu$Go%TgI5)if(@tXQ|US8XYOeBlWia*opiuM*of>APVO|9N)fHI`(_dbA%ZM2hnf3 z6p#!SF%4HdfP@G_)3u_2ygU$ALmIEfbfZafgb~0Z4vu*w13&0!=eNH1a1wkL0+h3Z z1uYDyG636LE#~C&ha`G5guHLx-obEJ_)mrL^u_rm^nRpmm1AE=2M9IL zsP-nV7@FmF;cLOZO;)?{*htgd$(6i$F)<)V!LFNpjZD0+by@@!?X~nuyMUBGvkHKP$mv9o% zZwSUBdrpgu@}a0DDHsOug|z_d=U!B^bO2u%YISfd_lmod-|1)*Q4pGpdif%|F-m_g-_-E;R8Tu~1o!QFSvre;k;UsnmcEPSM=JiY)Cc}d%`(;}kQn#DJU5p5&ADF}Rx@FwXsRv~}mW8Vgg{} zQaZh{-l<85;Acs|H0E*4LZWv5lexqT-^Uw6CyKbOnPZHLTi5e9+b%bS=VdZvjw21y zMrwZfwX+&a+-;am%IqY&xr>?bZR-e`Ozm;>_rL!gNs7MYSU+GqjDj7jV7~Ej;|!SH zZraDg!OX2|NI4vAry}uiKcb*MIF^I6+^$?gImrO0DGjIy7!9dG3Bu@ttrD}>%{MZ5cnhXc$z+=uCQA5ek7IJ%>mR!)n;`+6 z#;k@sIGSY`bsg3j&&2m}b+ZjdxSxc8rtu=wRn81af0GwzGDkrQ)jF?PdD&Y@R9c$t-g~n8)*9JLk^`SV zoWDAnzdo9O`CGO9K{6MfgPUToxqXfG3!PRZfDr?XxQI_e(7D_-gb`D~EnCI{R&5I>GC-^Y^HdEBMr#0iuzd z9z1p*ambm#DFBRB=!&ZPOHb-eRONq_A2;_pm+w!!FYEcQ9Uw}_Pq^qg2N(9mHxwYD ze8C$#O8M^NjM@h5zCw(p^|SORnKM}lfh>TV!eC?@S4N@!2sYhLotgm*@I}@i85tK- zBT;YR2sk(pm?O7H0TO3ahfE*BH~&_h&7R4DX8;ztyAZ9 z2xnyQlO5jmk3QifpW2TDakfaDMIi5pGSA#ePw6sPOb5E$Te|!x+}kWw>JpwZzB%C* z$H6TrQ@jcRu}OHMfc0?a1#0L3LC3idGNey0ekfiTA)~1)7KY}PxD}6|%+R_MS{hPW z7rQhf(<~i@I{M;v;h28XaXbY%fD|{wHRXdNZC7^RsE99mUvey?3@{W3(}&5>4v-V; zF!0jRJE|vZsROr#S?{mk?VSS48Xz#OSit|0mN69DODtkA_m1(SPZBX z%2Ng4NUk(S`KScy7i`RP92LT!ZRT&|<4fQfSJ_UQ0sVnoWH6 zwn_Pb)5`V2c8hGLL0g(GqML_gsv#ZOuDGQG zyYvM_YO8hLJfyceTszbb(&5e_54<(v;)}nX820>jrEqe+yIp}P1^LDbFnzhIwf@qk z;kG#iQmDnfd=RZ#7k{dJet@v8$mCEi{uN0ox zW6CG*(^onaYpsCB!SO|6SA{!T2Ta@+MY;iP09AO-J$kOE!WS?i-Rk7Lo}`?}nhx+7 ztiNKE@Mfx!qC(MYwUdAb$rj&^cO@}_n_@-U4vAH=V`~+&OQ~K}%ZR)9=MphXr0KEfooB8&@rE-t0m%_x8-vMe_E}vCha|>Ub&LFH5aaOe`1swss5sHT#ee?E z3BOBy;GZ&6!B4mRoUCVrAL+^G?K#1UfKu;m*6L^CxxYw1W!pw)AxUg~1C}JO;wv1z zyRYmx1=k~+2g<=%1(-#2oNyA?d5Km?Sx@>ht#HRr;!>^jrVFU9>Hung3ef zft#Y0DzX^7G7i0z12cw(s_w^Ci>1hJGPj(T13#b*lG;4#=&KplT72Xaqt3JwFgFhBvF z0v>_C0vK@s9RT9+uR1fBHGsT|w(+;4?Gb?f4S@1olK$8W?k^H=x3b;KVh)tWFa9LY z3ko0nkdQc)(zvw9+;%78@yPgwQ+ggzf*BvZ2Uw3C@Uc}1jOS$;02V7bfWWBXGcThMI{g|BngRJ{AlVZ{_B z4{ZdBwjZH&=8+0SDZ@oEPS$Ku4GL88@v;t>NL$kO+&1qgENQ%6<#n?_6}XA5sak@& zw0K-Cp9`Sq+DWotrW;oSvwND!9WKnm`OJ>1r{hc&YA#``K< z`(N5L@>kQHym;{KFvMhk^|Dl<>J)fuj<;ydn&EG4UoylnZ8x}W8?SB*Q~C=vrm`Mf z(g&3qgoBj#-{yy?*LR)SWu^WTw63b%Cz3BWwKXRF>Klw=6B6E*O4v-k-AKQUc+a5c zf`z{N1~VdRU0HAv1l$BwYPY-zqED(^J-Ihkj0wWbDh#R4w#YxBiiWrUD@r@F(3u0xIL6uR^*} z1PwC0{7^2O>LeC8$;w6cwCwUzl|Pb|jT*kgN}~1b%XtGetYSUu&J6JUx9$XcB?ORv z^1MWuE6mxpcZaJmQfV=Lzzau9HN;*CVZ~ukO@V*qgna-p{axb;T&l=hBncwW0Q3^y z;xW42!5nLE>(AsZF`8R;_oxL#e1;R1z9_3p#z!%o)PzgD1l%Hnq*MlPp{@@j%zgCL zg|?QPwjK!H_)CDusk~y4zo?`C^v=|_Q0X=)aX;!w8$2)$Z`p}(WCSzQaqtiM%?mm+ zgXjnO`FRC)u`m7l0c)YnktPEco&%xaYz`tGJFG*L&o7u+fzqc4Vjt_&LE0!Vhva#XEa45me$LJ%cRQiuXsi*dB=LBu+eQ zF;jtp^|DeSG}@?)P>hCJ>mg(&o6kRZGt+j@?ME^BvIyskuq^&BCV1}&s+sgw(Csgc zgnN})ML-m({37zm;1Pmc>)wj!-q^9HBD52YkK_>nVs=6+)i)!ut{nWo6S<5-mFDyu z*h}8Z1E1Z44#YW0X4KFW14rJZM=@SdzLVS$d0QMuePmV2mK8$T@%}M_!p}t@|0O+q z`qP!bdZ4geqVzWg4B#xe@t~HfM6E1k&h{!hr4-qnEg5SckHUXm90g!ic;IKv4s|=`H>&3D9!u&w{>z zvkG*E+1Ocr^vnqmKZU-Z__x~anOy9wNh6TU-(Sj*SqH|;%7!|4dc|_nOr7Y9s9wd(N(+&|QWVJonq0!O7F-b=mBoQnR)XzP0LI-4*# z;VRQd;=zfXjl&QSCct>+Q~D^Ic@0)|XpNrBP%sog_wMb9K#%*a4Ooy+c0rq*@!zOd;=~i$cA$VCD5wWH@COS1 zGt)J1xgt9)d7Y956z?xVC*v}1WLn7dY}*>2wx6`1f#u?1d&0->f^*-SDZW}O zM|5HcH{$C|Z-p5Npvybxd_(8}nwVcAxINgQQb%B`U*}r6lTGsZ=U-aTyH@hWHhPzY zEtQx^NLrgOi36<4kYShY^`wLpjPMLLBhDON+p8j{pTMTJ@s zY2~;DM&-rt1XP*_#>s4KgDPp4y|jCe*_hQ z4q*_jutb43)u0Bss0NYVFy@PGTmc;3x3;U1>RacIPUSsArN}E>`F~x1`3#>FTu{2f z#=v3<@75gFKZ!BG^4_*Yd~9RIr4@V=&|3NLdMrsz5K&CZIT`R3OQ3xKA(p9zw~bJ~9@U!18x3}ns3v#{0IITe zU>x3Hhq-sgiSuACgH*j^bfw+WH5_ZlX2(v)R>yX-V|CE6%}%nTj&0kvZJQn2Mknbv z_c`Bl#{K=jt~G0}RaIjw)GYEnLQuu_otZq zcSoT;q}mfem7I;HTi>fTCOt4v0R0-*aR<6-LNdZGBnl2<-x!XEWy3*9lteV;4+$&$ z7+-_8@c<4?z)@si6pNW3+YKe%>sfW8XzPIqel;C-D#egtr?fN|bW=aZ@XZ%y>u+$K zTIg5wDY+EkUHraTK}fSQU$~`j!=LErb0~Uk3A56{i=>VD4J**<^090*S*>r7E5z?c zvwm6Gfe-1PsHWI9Kzh0XR7(wG4yS(8c#Ai2F|;3WTLy(ksBb-u#irFKm%ZpbkQ59d ztN2M|zjC}alrFlhx&MSW>|`Zt8tHk#f@H=EQTpwk%{+CWvHWa1jL7-0)g zoJ8g|Z&pc(1a|Y-*+1RGcZei0rA%A0NLh%dZ=vgA&@3N=k%H^n?`QCeqB1|X@MNG2 z0~Nh75Ct8>b!P zC^ClidEr`F2istNdd?z-teGt7bw9YG(?Tfk*NS^2({BoQX27wiy5F4tR@x$17Rzs^DN~^WFX*W#+ zva$F1u;gqhk(G0`V_~DJK|G(XVM+J8@kMfcT`mCG_|{HNg(LO z1361rU}tazF%OPIUL1eWd~Tw}1I2hi8jjnD!m`#A6c!ixd!5^`V5UOKW`s7V=**K; zf2>5QJ+D=!%md9@@>owQ@z!)%iK8DC7SQC{5SvCUN)^VtzydgecdB6|XNFlalvsuq z&Txu@GHye==JYE#U^~lCBC#qsJ4mYtobF}$(4b})3{QVsr?)gz3${S=rG2Zoa$Ldx zW4OP{xVea#-yQLnMWTzA+{g55wRzOVb=EGNUQ!rWO7b-jV_Y3P@r?V}uR+Y12k$(R zC0Qn8B)@^PNBuiZ6FhQMbzIe#3OmR!B#C85R%)IzkkSEyiAE=B@d4S>^O9f#X5C!v z6rT0_tGow=Ljf~gc7y7Hyo`;FjMOI6e zVyC%Q2*yP?Dn5A$G>R>Sr>;D|30vKMy^fiFVLs`2Yg?j(0u>70ms{-;Z^R#rU)zJ7 zO6{$@)3TU!%XR%|JBOb5uB*oItt=)_KdUG77F^f?`_C2+daG<)j8v$}s6F8t@w%Lt zG(j^Zp6V?;(gXE_crn}r3V*wO|B5OKNeA%$fQ{F!m-{=U_=~P;J$rU=WX&1MoO!@r zg56!B;9yI9P;NezM0JJj@VB=xOX6%NQvgGv6+(JTKR)*wPw~T+pDrp3FS4a_TQWbL z7|6KLG%HT6H(-#^m<87YIoY$=zAGsGt<2Y$yfrrV?GN*VkkPBEt!VKks>~pDk?SDA zuELS+h=xThuisc1p_=`v!x=3Y6~y9lgBj>QdR=O=$MinUH~&dq&^TdS0zqrI1F z>6C_k5qS}~Uq?(%+!6NutfeZbXAgTVEh{U~0+A4-k7-!pPDZipKe+b*YC2X09?r@U z97=HCXBxLC&f>@ZaN~m=!3-}{e+tm3Nq&@&SudVIob(JSF~2Z;sY#RR1H>iRM+(_q zpA<6B)OM;D^e3=w76gbM6{tz;OW>DVt84uH{u?XYj{dR=&ejEH!@^drc4{zr7Rmc1 zK6;Tuho+$Z;PK=S#X9%zugm8qQ~uGc`1XHPc*JW!+26vvayQw(ro*JGTszbvN2&i5 z@6Bs8*l4q7%}Q^ozaB4~IAQ0$Mob?n&g$a!XVFqBli2)x!AH>9`zWkzA9bnlGmcL> zmnLig9{s{d*wqn4wr6BnkQ+v&M#7DWHQ-cq;!tLU~xs);{-j^mM^l?W4XDSk)t=d?+x#HMDO33CdgyBVcZnIb_v z9%w15hJt7A&U-!$pzCX%X2y7*%hu!|Jp8+$=nbXH+T#}q)Toc#x7fC{yXaF7QHRtE z{Ajii0Fdlhf-oh}Ysd@w6$LfXzBY8KvxHLn$nkD!d))EqE>=FL%8dI{Pw`2zQPBzq zI%wQ(v{`jTqp?W!^zuPzkvdM(s<(dr?U3V`z3%m(+8|@prDXxR@tJfx9TElcof{q& zC4djrCW-+{Jn^)P$mb3R=`jCFwN4hRjTur#bST2IMs(Q!$gegc_MZLiXM}z%dteOvt+;;?_!P11SiP9nB}6awkF%?0G0fuFh8^qBTT?fA&E~xl zvcA(it=|mA)|oQt31TW6iSz!DU%85hY`nv6SxqjBxKOtew>&iCreWU|VF+rSqO-ji zJ5_V79X7=dPDP-y){zU{ptyc3t~l3tUzAha7BS;b5)CSeXLZ67>RBTGl8|fYSwhx+ zyR}sIKbc!s!%vGAZEWz=QrpJ-fIXM+hr-HqP##7862@Vu#X7g4=@@gzd>|fgkeB1# zF9LPo7}&f!@xp9#O>Ms=vnox3uBv#-axOu( z-2TZ=&6?kqS~08aPC>@x>1t#@n@Wk^1KIBGj2Jo#&;~J%!>iR4D9B0gM&vutS7oKB z&|Caaw4)%0e}j$`e-q_+i&C6cv9^zh7-&|go9)gh6i_3UPf1w5^|Ca1O)PVT!%ZNo zSG-<~n->j*mXKuU2*2{|>#7PjO9c7~6gM z6|>fQA*1cpEfxU`$L?1SC_oGg;~Yw8BH}nOmGj^4FG9h^1ej!`mx=}6@g&p4FC0~) zYX?p=Y>1B+y1!QTFE-RXomE$-iIaFBvdZsx2G8pT-bJF*j#h2mZ>Djd4AFoPZI~in zFNV${DFd_}KYFZ!Bepw)otPa@l)>hdUsaI?i45^8E}HF4IWH+J@YIByb~eL3aT_Qi9z%;JmCvfT_OpYyChOV!XFNYA&AtVg<(^s zcqK56R>T)`DpZ!f#L=jS0j5Rf_t+dHf04m#pWW`r5P8y9oShnsD*@(W?b?Db!BIEa zdi2u)8g1}!HD-z1$s(Zq$4e)P@7Y@azLk|hP89>tY=gzc<&!qMqP(H z`pIMHsu5OwqqaWku+%4y#ug=D^5l51t}(l6PC#N)B*!?6cM{;y+oOW6L;OI?elq+e z@D_SWa*$(>uRAYiH1ACNy&`LlOGpPui{Dlln=*Yd$DxBO%_}lOA4Yb`kl@I=N<7Rd5V>Eq`3Qh0~d(y z`nZt8Z+4>ZM+AqHe?~3oAdl10)Rm9eKoXynBVqUJV>(mZ9%nd>?u8>=d3v?bDp#&% z6I!5>2;3he6Wo);yihaM9+{p`&g~yAXNjAy;pEq)Soq_IMltV9-?CfRktd)^E8o}l zxaMQl*?J-6S?5BI)tA_od*S;~|7RllXLxpH<8HoeQA@~x|m z%#OLO=wA5aKE(AqgPpCcKYnq}Oe@tqI`t4mT4wrb2_#dcx}@Ei$;ttZMeyX@yV&Cd z^($E_Hb!M09vQD!2571DWW6Zi?bJ|6go*PSZSSuY4(WAJ!fJq5BgMLM2$HXAQW)ZNw;bZ{X{i39$caJ~U=>Y4G}+@_=so-N$O z@S&B!kDge_l!6QdlNqp;z8m}OKr-KY*qASm;+z1TCaRrUq4X-~A_Lm)kPKps?@~Yu zt68{TE#5In3w04SqB|}kwHlck&3)@116t%V%OH$b8(TXXmM^iW3X_6(g(T?FH}1>DF14oTSKMc?U~yRZ0Ss&WlR45+07nM*Pa=6wN53VY3pJGmh$Z=l94p>TN?(u6Ec_eGlRk zo=}z}-m7!HRZ}*_){DF6Nk#mD8^|8r%v7RswRIe1NLcomxever&1T{--`Oqsd{Wj( z+XrKPxWug{RgxxlXro$;dIui!2prNE18`UrwZ8-uUdrW#o@I0_B`?o37D`8!fLe95 zO);Yll?p|6%RCFBJkRyL++E8g%%YIQanW^c?xJeFtn4nPQ263Snw^oDG7V}vb>t<= z_QlV0yzgj&aHzN;apX$jYlazBwes24A{*G;A3diQUon}6Er0DN8g0VxTavztT%Y4l z78_QZaaEBzSwgI!QdNu7eB-2Urm=29Yrvz%ZFZq1pf8nPK(c_Ut*rSYCcYLq{Mg<^ zoWXd(0_CqCE*c?U7-z0^8QMUsCT(tcsWfD%kHw+4093ZM6PIcTksR8aB~Xga zA};%FtV?`zafGSWG^BBHMP&RKgTM%j52gqWGZ|I&F>}op2q;@Abhe)uPk`HPJrz@O z1WbO`_A0l?Tdo#0-g=OE56Ay#WoXcBeK@C;P|gShGp?a9h18~-N-8ND7`&Yg7&vt} zT~)C$_ZTKPj18*fpr*6v{b3k2C|8~LQLsYgNZ*XYYtMF}0Erbr4_L8tlhO^}!WJ2t z_QsO!l7_*q_t}+Zf2&nyeoGLbL&ZI*MUSME7XM{*;popp!28xGbrQQ+^N`K2b+4yG z<-#6Sfam-Cl5F`afgAVg3mnnXHgi1MW_ZaM?)p0y2A*(zCho-JW@s7?W| zg+fcrIs*of&iF`nPJ2u*Y9=Bz&Z-&0&{<7{q^0zIgz0Xptb(NvExUAwidq&T%mrEj3o1-gg0G+LFhc zf`7gfT$^_v{j3+7I7p|Z1}dE4F3Q=GCaBodn889D5$}i==*_7%mc8?QROK2xCl1Ie z(HjZcNQ4DQ$f@Zx)~-pNiH5$)YJ=KKz$Heh}d zCb+}FM|-F9FP3#W)Ji14PAiw}Kw9S>rBvI(FrL+{lf|d}|2cCDznU zTbwz7HQOQ-$W$6~LW-uHukA_kQyXO{PpAM}h5q(Tu~)+=6Kc-sh?b~ojBrt@U&~VBU*a#WU{r0OybvyeC zn?y~EYKjEAE=_6c4Ny6sEqjx!j|^c_QGL)W%^l`9zLIdZhF{L42AI}Mz5SWs+2aqr zg~z?6dHYiwO_v;?C$tiGC!R-XcK*T+!NRsV(}XWYAa_+%jzNnwXQMzav-RHF3@k)_ zHhHsmsqGZ*KvudI__&fu$+0-c?(o*GS9!a!TbR!4&_|o4v22?ZQf@A7m@cgcV_00U z(ebN&6~uPNkMpS58>KDpFKB+7t(Pkf!_G&|wXm~m9+Qgs2(?r=q3IU0fpSg~4~R%8 zf)Np7D=)4wVcu#2DD2mmz&{@1$j2~l5d+t@;Sox^JN17Q{sklTyPRg*dTQt|_?9MY z4(Hu}%>YO*!9LBU2uu?^*zZm})3itZMOn%~7MthFOWB&#r8s8xA_$0>hG!Ea^#Y|I zHr$h0*_W91AT4+X@f7*pNmZ#q`iMPs5i&Ul=z_P*j(c2FRc9{$>7DDVMD@N6O0~W_ z_CoP@Oc<`}fS;_bTZktC|n^&g5Z3y_OxY$z$!nt&2@kG`&ooL>^cJyFI|@<~|patA75_5Nn3&5(0LrE`&tXxwC&zCm8t(%HKA(SLYy_B40kkF|)? zkACkhNww$QY#~jAM0bS-XZuB*X?&zkS8=DuSQwOn4xE*Xwv6iZx}+U@L8nV6+o|G- zzGQFBObuh$PqCo0Z~MGbmEouZq#=z96nrnwu4>>J!d{Vs3y$OHLOi!GoEw< zw)wq4(6$`@n|Q?{DZXPh=YRp;APIYAHJ2c6*f)~n`!nof0M>>Fie}^jgaF*I%)&&? zgoo6Jq|ApDCbQBnUgv40ZXAyK+F7&d#m!9@UvhIND$e;g$Deh=?^=P&YP?;qZK`nF zq)3dCe?_RI1`{XOSJg84!lK83UaV>(@y6{v9spg-ucr^Mk-n_Njemw`^lKU!OkDy} zTeipiD1M^7q-ru^XMpoxj@6_6l*K@EsnD>#F7`OuGftspy2BFYIq51h!6x3AK{w0B^$I4B8m8Ibs;!& zd~hHh71vpe(5~AMw&IVFMw?7>mFes;Al?0LAc}gO0DqzZq%}Bm9ytw9ePyj5vg(zf z;NURi+omQaKz%M?>M)Qi?o<3pyt%Vq9#n`FHcP2ga$@*lP2+oCv-PVih?sg*@_T_A z+c})vkK3`sV1*EwqF}}^RsyyPVBF&jZ>XJitSDW~yEP_Z**;P+xJ%yCG0U*vVxzFH zmVJF=#qr6XFX~+43u}24t#O&7!?NAkN8!xrYbg*u1f2x2 zU3_Q7`+p(G_Ew1UKtO=b5y9e{TRQt!EFy?xz1pNArz2e95IJ{;w^#Ie_q&F!bk!VB z(ybGmT;Wdif!zHb7F1BJkgmvh`p4Kn0kfDb1d-S=>ilb!Kp!S&Nn3h&z{7Dk^tJz?hj_q3?4+gOYe}Xh@LE(SNPNI zc|~5aIpyO`y0}d`3Vu!&#XGezyf=!{=B78<9#+;z)2!)_UQVtA3~&(AYruZ!Gd$=l zu+B1&meASLc=DTyBZErJoQSl9S7X?Lr9VIsca&4SwH&}2zkdleRb}yVzREMFbPM%>O;J6 zx^{MOTg%qKnlX|__B~81Pt30Gs4?E)3%i<3Zk@l~rAle%VyVW9wwGT5wWCZ^SpEha z-Yjz=f!aBBB25-~VPISFwniR5Pn?-U%h=;0hdP=>M9W!_>1<|+>+0QTn3ePeZMnIP z5Z0{B-?+eIzKA9v_rf!jPGc$J!isaZ(TXDzroF-vN?a+FN9ypIcJwH-(*WJ(?*NJX zQjsd25VgZJ@>zpWz(tX*)V0c5G3D+k{8{0Q74FZ`;z6aan zM*{Hy=vz2Fl*pU9k_nhi{ZW;&C?ch2Iq(%MzM~u$Qs@E~YY8Y}wX|s*C>Em-Rz7Lo z5Olt>Z`eLq*fPo&iSE70T?yaz*EcRYw-w@lMLtO^58+?D-p8yys7;K@%k%}Qz3vYRbAUyIXfIO{^(OIlD|zY$mDpT zOysU3+NN(Sp!}5}Br1x3oCv3$mn%o9owRG2K_NZ7D{7;3c*UV4V|Ks+O-H+&@}k|k z-4hWoyaQDXr9Jb5`?W8UH&%%~ospR81pF9mYtx=d_(oQ_fwA(tQ&v0AkLP+cqNBfM z@#Dod@*kDGDF}ggx|H2-y+Q5nd_^!#~;?>CFHL1P1k&t>{vC|tDRH1?XXGNyvfqegS}HV-)kZv zt)xoYg#|Pb!Eq@!+MN#RR~|dG$$`;jdwRWY(v#xgpJ|Gc zgG*9W89n7{QmMLxQvKKjf`1rs%;k@Y6Kmv7qCn%Gvr>_mydeGJuW0B%7>wbiyb1&5 zdv*D3@k>mu-~6+er7?U~Xpii8#SM_+K(PG5z*6Wzivmy{_OCQ!5rU=ILTK}m#GFvf zx99I#()m24GD>o?NJGke$A1I{>3>oL31LmuAaJs7Yixrq@~|X- z8Q0Ee_>d6f{;-D;S;*qsZS6S4Wjcw*lk+n9d?7mW%w|dk z1Y^{0C$^s8$`6HO^`$;#Ya6U-LOI=Dt!i%p+u*{#PT&ZKk9~qhp4v#5O&>m`Y}lJ{ z*yaJ8I1Xg%sLmdU5418&L&0S!9pRoQG4I$lo{c(fO_gB%&^78)$tSD%p}m|F*A*Vu zmd8<-f*P%fP9%VvVTaEF-`kZAxZ_Np=0x*9ST}b6sI=IKb)(WYU~U7LP4%+i@7fup ziGQ_|^}=Q166OA=8#AqRCXj}cwNJ3uljlFfuGX1U+JM;X_8JNo(X1P1bBA$~5Bz(% zT5gwx$3!2R_>e9s+e~xQ9LF}K9K?nGRO!qhk7{Trr(sPZd$y}ht-EXtlAEd$&|#7E z5B%G?t1o^2RkZY01S^zbEgJFIo$t{}&-4E9g#kO)j<@tzi%2@ljo7vzAQE;Ssdc%{ zR8j1qbUP&S&-XXXiCUme@x7ySCo3a@afK`zU8sGIk}lH})CvO{dta?tQ#hA+3oS5@ zTHs3-ty;I?7Z)Q|wWQXQB7DO9{%Pg+Osfucnf~0HE_}S2WcWrpdf9_0g$f(7;!!k$ zb9j`=Y7&GKxcHUi&I~Uaxr58^qSC?Tj8YilwWa3ZhMGAyV>jQ>2@k*OlLgj&Z&uA4 zL-R3UP_t8kj^~6^|82dYSJhUR4!&=XjC7=Qccj$FDX-h(S9R?8z+ThAK;zxaIBFix zx3}6jfRD{8W9DSr6@TU0X;#e~0plYv;e!p6gR)YOtCzauhkx`L)1D5pZTqii zOsMJLa9LI@iA~O_~QTn=}ceWCeq8)$QvA-JyE0j6fyeI)`)(S8h4T}{GthNwA zJE7|nX#Fpo8Fup7b{a-ei#g2^IZ=?cVTybcR9^t6{!{bdu+#iw=bUz(KLTw%&GHGn zsA|&Fd+Ozz^(PEEVSB*s+bi4*>5NdLoz{!nFbM%3^cczV0H-*IpSZqDkhJx9%-Ive z(S4nZj6x981jwBv;gY2MEm?UChp4Xr94=78qzwtnhZ>iBv5xtOb(GUOit`nZV#yJ( zjRI0d2(#+fw-FU9Df)?h=SX?1<>$$mllhc>_0EdYS5OB-Wbo1Qg_QaTISPHz%(Z{5 zz394f{^L%^e4g0H*#gv!Bhs24d|bpj{a4*T%|TMCRN}(lrfR>d8XD(Coj~Y9n6+Z~ z#d@$U`jHzf!Ni#CI%o2&2SLgo;yTQ?WP)V`;yyZc?AJU}YGBVautK=^OCh3{W@-+z z3LY|T?I$$Mnqo>s7xQN(6w#x&m%)m`hATOIT?F?Oze&7+yvLBV^1BB?XQ<|L`S`p z2=#jJQn~`hAVs2&nM+$Db(N~bIlTmieV=~i>uT;D0l=s}*nu~>QVe2^W)$L*_R5r) zPV_g9O&Ux?yo>PbY4mEc`23(UGILRZ) z_T37AgPE!;SVh0Ti^)M5K9RTE4v4zl_o@A)SEp~}Sj}W&inWz4{TEJdI3_i&)0_H7 zg{nkMkLajm>KX!#=H4&qZ9Ah@e0(lVk9a5ZeT#e){0u6kfKkIyF#;~trIA>6I}96z zub7~HlhiswRk8|7FnJ%ejY{J_*gJo`jdC0-6+j zk3tJzIg!5o1BYV=D9W1(d%Occ;wfy>Q$&0YaVtF*C9hWTpZ6Wr;jQ3Tcp;A!{y<2% z4OVy&>Y>WL$kleSEUBrqZB`8Pp8SrWOvjE+KIIS;O<9*yv)MYyUkD!8-(J-!FGe}| zMuuq2xqHb4+48flZ#pf$r{ku5xq7Cvdwrz5$T%jes2!DLq?&v=a9%QBbEF6K;ET0!cg{!nef*_r0fePaO@aus= z3&n~^7bA)KMp7dTrBZuE#Uh1)NMnr}bVQ~3=fB@;5+G1#{jd3L`$!rCz^5*VL6qTE!z6% zYcLN8(e5}H+a}RuU_k1_YCk%T{CB03s|GSq($~3$AjgvV@{XfuP{P) z4PiYrur(TpSb2%{alsW~>MKY z%w5jG(h_gF*CsPRdq)9vHhp30oqS?gPOY&NDm?4fq-={7L69?;OeWhAiMrx_!ugAn zZX~^Q6eV@B$Y;Ft@^XaUy-yMgFLx|znfytO%1Hz-Tyas6=gz#i-ABHg+?cS#NrdG` z?u~m>Pou%^IKwsCNDjZkFM&imb)kC?&pB|N3{}wPa)a9cQ(J4mc%uRQ0^C~+nQt(JCIz_obDdwu z0PO?gQEU06Ruf^K-LgV{^vz=`Nz+iqzkUFTrwx3PC(yyLpL)&cydU=K#Z-Pn*)fSc zkr$!H*X3T6;aW5jDi$&keVj4F&^&!2dTdpzoS~-h7xVUAw!&yxE z%ZeHzt}b*W5L!%UZf{UcdHWUgMV_m1fHXP+R@b(&HEnX=kN9ia--CNEAMRsOi|x1qKo=NUS%L^OW~Drs*4cIU z_sTt5l9M|*!3Fun(NI$amdNlN1xNzm6eB!cf9=cCX?g}R(Yq`e@Wq$EGVO*@)ZG2G z7atic6!o&^b8T6Gu4VeM!uXQHfHg(t$qWhEJusK6DM1b9#aFtm@lw6 zNt1S@ScXmQbrb3jlAZGoAM7|gdX9VW?E-=yzFxR}CP8yUv@eoWEvix%gy1HEI;kch zGNLCTW;cxkp7hmq$KpE;T*p;?5B=tfFH(zr6FhjO@G%Xe?B?{3cq#LWJ#^IUs`VE}4a%!gXyym~8a9!n%>pCcAKJbJ5)!rFdApdYWh+Q2^dNf5 zH0h~3bYknAZH-`7R7MHCGZD^liV!kY;PvAUu4hUaM#gW@>pHe+Lo`YjNUM^^b|;*! zZs-!npQ<;9M^=(ToJ`!+2(MMBT{z{EUq<4`X;up1(o!?WHk!pZa7ZLz&jC0$3{p*~ z`ow)I!Lmw4R*=hL3lf5X#zk< zt0LrM7Y5W$N%Q&&Iu z)aKLjPeW`(+b}1=(HqW2cI%ZF|Dx8CR4dpQ;AcFJ*^;_b_E6>mLs*RQ<7vnyx64`< zbbHt?`OQRjeozfXXj8Zwh`pTavULrm{{p5HBF2vG>*D8Ov9ZI1B0v5%ymF}wwVXdR zghH0sHiT*#^irH+ZOD&ra3HWp(qsvg;W|AG(-7*cwQdA%UVfA_J9f_?LDd;CWent1g)Og1?AUH*LV9qur$z;|=T|V+3dv;iLPeX(F+Y$zQ^j zV^>wEK8C2OC1$& zZlwVp2Zv)<^=d>nvh$KE#Tr4OhpD5~iKD@1|HAI@I+%G)$!WWxOm%^s!oxTTSx-Gt zHdXf*f&VF?lIQ}x31{WPwoHWza!2)Gu7ojP?z1$oiOwGlw23$-=YeXfhj%6`I<_1_b^I!uMc(tFyLV6J7)QktV%q@ zsmEVHR>BSR6Uow#>>AC@buYtuPWl~1aydh!Ea1t9O*+l3*TO2?Ezx&)QPiH1a92ak znokwW9%l7x0nd|(_9<{M*SM`2g(TrO5i_3g6(ODDSDI^-?e3sdCAbtUN=;8db;bJ4 z00*m%dDX7Wa!XmY?sxIP(Jplh0v^WldLY^?q1vjJtWqMpJ$G}3y{H25yNdpT+Hb#Z z9JbVb&8Dbj4jhPi{JifJC^T2ZW1r=?V>X&El^%JsbOn@mq3tBNO(@66RCz>~eW|EJ zqq^crzfavnv6j{vG4dHoy{e?*+NpBU9BLoeKlM29!u7pjIi;R1wFt<@1c#gsrKGdNHOwiB?*%%K61c{v6Y9B`06-<28@ zR!9IaS~X;st%{f&p#ds++duzG8lZB824qq+d{JE>L6Av-yKbH**t3m+=99MYp(+)| zJqCbKej9BNPayRfQqxvWe+~vh?*jwlVQZAdMwv5=fk`hE?l!kXg*9z|e1LWWv9CzW zoUutG_2mRE=O}XZff&q_X96Swg{!43W1wH_wnOywApbR(V_(iU9AOaie}B8EX5NmH zjZCxUVAne(DP)6AQJ=T7^3zDpE4R{Z%=S$eUWo}`?I<|qeRmalu`Sp-mAX+^p>%=! zq2!t!LA7X=hTpJhJ8uW8Rioj&WDtN4CER?{3?f;f=RIQ*MheI|yI&W^JjW`0NG*W* zKI8CuK>~OToAH!W2GJaIzq_JBdx@J16qN{LI%oRwjRbV&H3-HpkRY}xbQ1;k>MLt! zOIxDCWEO8B&ly%rRW7r0go3I*;Vf!25|+&3@B@X1Kj9cw=ta(0#F6rH&d%3`vHu6> z@_0dl_!u_#DyQ;?9+A;#1xMgnP`{>xv5LCHCXJuvi$;IYXCk#9tt< z{tLze2^_CN1rb#5mszc7cuQ0$J?cf|IKybT%ISX`CJMt6R=P&gdCB-c(>mG!B3vP7 zJ!29;GWvvD6Gr|YoCEp=3EX4ol&751A9^@nR-fioMD2|4N37=Yh87$kS1)rH+6LYs zwLf?b7S2fUiIL+aRcz+4fmdQMmBDYelv~OmT^Q)6(ql!R&!yU-pNm(om z=bR?Y2lr`k-S4=05-8rO9HN1q|1)^=#|*NgVf08v_dR>4zwPIkEH#oQO9r0!146@i z|1p^NjO8Cc*h5?sM*W|`E-)7)@Q2IbQYBguU~Lxy2gBZpxHa+e~?x9;66RD z{saAUW!eAj%i7p6h%Pt+V@w=%4=(ZTpAlYV#-2(v*LQ*4zC<^zlDLRaHKTn*NLE zpZ_0GpMMjb>iRcPv#oy<{T%aOL|6Y4YX3*{Gt~Y?^fT1{Mf4NyUqpTWP4pA)UqnCQ z{*S0+-!^Mx-hU)29S+lsCFR&>Z#v=7yb-0>Ggp$N#Xjt*!IrvqdRD~l{Yl*ob!$Y> zkBLb-Tp+rmo*hn)G=K>E*#O(hWdTJnNNq8Ms~ufkjt z54bz5Q*B%H*@9x>zKTn`*gL_LH6vV&(BZd9(ddB5(G1rdMwU-)CatEsN zO`Rn`co>g3h^jX!_>=N1S@&Ba)ruQjYouH`|xhK)7 z;dK!ScR(+};9SpQTU5cH{vO#mV(*1-VHLnO2i#>|TaMA#>f*u_Vs*lgkh(G0;+8a<3)ZOuU5^j&# zquJxxCv=bdm*v&<{uIj}VQM_Jbs*J{ftzrfzz-i4`x%s6E9Mfka3X7{Q8~4j z6Xf({aC`c|=li|Q23MN$)Pif?X>7H${g5A=TTCA(7FgY!r4BU;k2AbldmGXil6O^E z4}@zb<|0!b&T(x-$QV%+E~*`Xt^%S?i7lZbf!yIQGfVM(S5`JGP=CD^p-(4|No;ix zJICh7*n#VAM1vLok@Y0eyK+Nyq@{{6PqEcd=Yju|(;K&@)peTXKW4SgH;x7gtSTO} zla=;*Hn`}W1Pw6BZv9v7Go|cRFoRrRcO}u7mYq|h=G*w&`}QrhF9XMP6XY5DG%x1n zy5=>I%C+ThuLjm$r5oKdors55uZ95FSv+zV*>e-NHxMnIkI;M2gSZo}s|@A2|6vHb zW6AV-QI*`Eih0IXb4s;e$~J?lI$}A$Ub0t%!?5)!E3{bgdnSy*39gvv_2Oki zZI|;-CwYRZ5&oH~)#mMT4miAuc!4^FHpDKv!CcX6VD?o!KH}79oQ2|XEo{R>!S%Y$ zbt3XM#x$y22QhCAH^_&r`v*;i!xA@GeV zU8&nBr8Oo4wHMvX76>d7w>+!e&9-(c)bovNBp-*qoUo3RA-W;6sQYwrS~9~>ix#}+ z41G~rQth*C23N-qCAMAHm>tQ2YuOAl8MOxq*TSYP6pdbj%3&jsaQ`oqgy zN$*NJV(cRb-%ChK5x#v>LfwMIx5dgpoZO3S+m$|yvLBdPKaJ5n^u=5yovJ;$0>8lL zDu6wh&4d_2Ogo|iKdOMV?v$2!D)q|C*Eko*{>nJ0Zi@Xz0V*d;XvWc7gsc%fxuy%S zv$_Fd)wcG7t2gZVifJywzU{~u1N6^WhfYglg)nfL*G&#${Yy#gBmMQ+}OOq%OJ@@9t-_t$^w!5|htNG{Sqr z`do$?g50a&)1_$1%uOx(zqDi5+^fM`LR_`0p*)%e*Sd+|GZXa>AzTfIi^B$02OC?!b*;%SwMy4ceTw|?ED6Q*@uyZRV&^{XCPDK0wY~U& zhKoQGxa*9l9EK*Gus7UIM0~opsS;BqpKTN!Bb4|T5e^en=R&j27?8A)Zm4+&AolES zVFp5{w`ZeAQl?QgZ;y`lPitp*V2)07pGiYKk(L-}BT)-*AutB}W<=)nPqYV>864>N z_)o-(IAECv_l_m84xZ=p^(nm zgL$L7k(*MOX2aD_2ROi@RZ^xXTupf9Kf#u=OBGfYs@Rn{qDm7T%Zw}CL%e{b)~t*! zXo1LNr9QC>LK_bx2{5@0jY_9zddNnlKDEv}!COmSPXbbf!gMxY6JJG>KuV`#H1Ah` zkD(u7a~qZy)->t}165#Q2;VO5`+bQE=JeyO>`oj}WiP@D|Ji?G+@ly-RF5_`JM)AV zA`hUGnEc@F?DYjyXlcOgg4xbDQYg%5F_8WgzzAEr;O|z-)k_LeTeGsf zpx3%ASL)+x$CUeae?;dRBiAlkhZJXHcj9CquC}~eN}XH>a$mD@y!iTQvITk8G{Ozy zPyO#IHw#_RoGIqJx8bH=-+J6zFc_21ACNd;YQw*8f-9Yt(mSRaJefTUI~8t)$5oa?5sNtcA>7QJ}Z+lw#o-vNlr!*i{06qF@W3M zb*9fp;^SuJ-?#%2!SUl9u&>q@7h%k7lUJ}#(w8b~f6AL=wD>ud2dG6g$0tuG){rOn z!=XRv-j!9|NoNVK1fQ2gxBtAJe9?Vw5lq^Z1{VYNhR)yA3N1O$@!;V@(=GWcWdC{K zB46OyVM8zp$%LavDCPZgV560IdRUdK?^gb+sL(Z-FCv|BGNI|1Oce7}HD3UYuR^j( zClV7YZdW}F|52ZyQnqb)d*;f7Ab_qY|I!Omkf)7qzN>^W&pL_fb^dFjg;KYugwjfJx9@FVmZX(z3H1*v?+>@Ubd=Aoxdvh*85F~m36)yPHlE-Q3B)AFV{mWS`K z@Ak*U@7hJ7wREXJ>tClb*ZyoEnJH>fS#(kVw$FP=xzLDObO%gCq8GsC?fxQ;c|Umf z|NH*{MnJj08t8MbI z#MjmhM>I9%V`f+a7w}((J)1iMDS;#RIV#n59ODj_;0T&`^;JxM{EFpub)T4X|ZYX@$bVeuh zxo{`%7q&AI{wd~Jd%h+uoH&kWnMe+PhSqwWSR3vk8h^2r^_eNSpwbq*at06#m+zY1qAd|khhe43m_DSwgV z|0^+d1W{KsLCxNy73&94V@}R}Z}u6UKCBd@iz66Q7{XZiP6feX$`#=X4vs177_Xtc zMQDsBjtzEV4C2&V;18PH|CzM`KPX_~yTYBa;b;f{#y zEYn5tU{9A^iekmXAd5`v4%qfz!uJ}Xfr9Oh-V2am(YKnr|77}K6U)Cd10w(-QV;Lx zt^3r&gC-Qw4~JEQXbU!D$-y(SL!)%8%xmGHMI2_zWcC=3!W znA=Uzsph~`534kas(k^%8i1$m06&(uL=1Ge6>AZ~F3!CJcKU6IfxS!-iGo%2H%cJr zMXpsEV+DKr!Zwvf^sd#1$T$Mpj6t(J&DY^W&ilQDR+%kA(|LxAptCOr4y<%K^NX_RM}XsTV7_RGniy8AJiGvWDID>-@GAIHvH(s^TnB+TsQdSwHJuD zbDXQ{qsIDs6_MW;Sl@_RKj(KcGpA%-nTkQiqwBf48WwOym*ud`VNwWe23bH~VZo_% zS7xCl_#!cjM9gVN@ORv=`Qe<<71l1=m-u(Oe8xvlH;D-)aLh~vdfBqUpq|d?CO^LM zW)_{#)|>EFycPGLD#I28y#U~MtvH-VDA$48Eg$$-VNzNBaWW9>OhHN%cN;5}nN&RQ#km=&nAx%+DQ^ASL|JE261;^GFL)pU8 zF<}L=cUqpSuq6a@YpgK9`Ikme=MdQ=Q7?vBa8L9(jmL0GUq@j8Ldmr5>Z)>^wshcz zEdWPfdz@L4wVPZ=!Umneo*3yw=5)mRn&{>4Z@GU;YjN&bRC04Dx*}E2!?4lT10gKs z4Of4K-!DmFbxEg7pfRN$ctgbEF z`(`Uq=wc;Hz_LI&!7?;*%cvcr;DQ%y*C_raQ%<+ZoVxV9(X5@YK$DxVbE>%$(-oq& zthBGcFLHJRCdO3-+>aH|IsJtdtpGfm1e>c+KKiP>HQ8FckMQJ7_0JMp08 zVpeKb@96%eB|Wbd2<4-N>!|g1x`eaEg}#VBj3Rr{>aH2a@$v{ZS7-D3F`lN?EKRF} zSN1r#3Ux9&;dWAq=gfV(I;v28#`lhGC}h(JM58be`>r?TSZ3Q_J|THkJaq>j!-{3V z%p{K}2azW)41paO4?4OAt1m!U6?fTtF}3zO%N z1ruYS^R?$(BX|oW)+L74Rn?#Dgp(QWuQIs$>QqX*OJ97o<^dt}x00#}{ze=hh4ZUx zU_(dG+`mAt6ysG+Jh@K2Ob)iIU1$eUq*b(evuKR_58Q~ysyw@fQcAPyHn`_ZU;eb@ zwZDl4nU`m_7s>n34lhJ2^6-r*L!}hjUY~O3B$ow+{H3o8(;Qu11xd5MZI@xHv69hS zvh18W82$mq+GwYNz*+iqB(2=^*^Q9o^l=id-2v5;=O{-sig;*t%b8J+Hb9??>J=zO zO&#eH!j5EXW33;|;%RL5Iy+<~0!|7D zcojGy`t?-`*!yJi!%y$t7()F1;$;5^3*NWB`Sy={){7th5B$#`Uv#j}qSp2*xb>ni zK*aD;O=)6JKo7IY$B5aCA{_^$ZRDX<)Jdn`(t=f%Pow4X%dCEqL&_DP=iFZGzp(8<%YQQGO8(!a{0NvHHj- zT!q%tu2Fg#7ZKVPn}4zTMW;hS0GL{?9Pb6MNjes&^>`*+3eg^%^_mpdZi{)G{3Ol= z`V#Ki=NH!8)ucouj}>*0;F-vr0aVB%21`6NM+qLinYTOSRSs$c64McnG%oDTk|yIx z=M2CkPrh{klgB7#w{SFp?%lDbjJU{A1r|mfx>sE`HRSaovG;PAOz)G1VCmE8RJfj< z2!AmkcYEoqdphS^RZ>`kF_v;6MqEiJVW!s$C|-0M0{WU`$42VGXU;%H<>tgjFW{n) zYV%HCE5`sBSI@X+{_8=RIk9g9>vs6l;cRvsPHit>_hs#h8#)&AVG^m|u#?22ItZ{% z@Ua&OqCnfABfPz^Tr~>&%<;LZzW{s`hyE=r4t57cyw0NVl5=Y1J6<<>vnkj|VKDKo z=Ir>ugvYj^2bqjQCp#!7mJx&j7De%80=(t&3I+uBEb?wa6#nD|oYvV6Qs0Zo4WQ`k zQC^oTWpNh5Dt53V!9=IJ@9-lnX+zXMfyD=|steK-9c*07A!z0y*M8b8K_Z|$yDL@A zeI9tf&EZhAJQtG(C+dE=%%IsEZXg`GWJU%GeP^N-mVc<3qp5o^Wh(}ou4<+BZ@YBU zDvy3~FPu4njedXhF41O&Q1%6dgHIFSS8eA*eMKnex; zuhfy0zdW55;}zaw%q;m!b#A3__pBK;29$be{0w$6s7DDhp^bIBkhr$dCBz!S>+}m$ zHBP@6J>&FI$*9K0!_qKLzXbK-^ij9yPPaIHNQ%Yj1JNo#kaOiqygI|vGW*1EwfI@) z!UxN}O(`dsjtN^2-^W&4y8e8qm#o0FY=BcL+$p#kk!ln)NKDrXLaY_hg=FAE;cezb z$EPM?qYj}YMF+bB`DwPDQU@VoE2w#*;bbTWFG)Jz`TV$V74uK-WB8E#{j~_Lnt7b) zfT6DtQM4Jen#=N&riG;*f^y5j*t!s>ibIgg$j+{oGzbolxe0@*0{j;H!iKt19h|H{% zbBm)`F%3c8UY2BsrsAS1DCG3rC`C^uJy9lu=JOMACS7l&y(zZZE%Iibi2MGWR1&&K z{5JPwO#7VL=b+cqn&RX|pK-wpL{<`Pm)N6AHZD6t+5*pRV-2X8Z#z24p~#y$?Te<< zJ$-E7OBRLMbb}s%DU-6GujEkJ#q&#=c_J~ZEK5OMVD+7FpqZg5O%XM9UcwoE|FT{cdYDH)Tks-y+@Ml4HncL_$Do? zIAbF6!^wnlS__|A{M<;9;_~ctgQshlxAu^(d3vg31XB^qZ%cDRszA~V?eIv~2HyZ? zgE5LmILcRQl&^B5e07@rRetal-Ukh(a^YNYPUO?ka0LQg#>~-mF`9SHFE;won2sv% zM;cTiJk2OBo#^r_+zLf(b?#)y{&s|xg>hc6r-~|OGTsp_1rNhKo|AK~s%p-Co^iG`0ByLSqB5eEXJDlQ75Rv7Ah^X;(IQLx?pj@WoR$!n$ zs;{0a+mBMbGGD2H;Bn^>_4$_Y#2;(vrRJ)9F{2~@!)v4vnhooEbGqS zHKQ!bTc?XKi}bjc2QT%qS0`^3U>(Sarhqoni}N8QsRov1hsy=k)Xu7CX$UiM+y=mG z+UX?8SuMq@3oQ&#mAVdn6E8vYK<8B~iV5Q6-_mcHmb;l>#!lp2lGb-=J2zJmR_3>+ zA;_qZq!j|~pl~Z_RvS3Q4t*~Bt)8~)Ie(gv;BzuJiC9b`_CsAmi6}~Kr8S3>E#ZcO zuYhbHJBuuG?^Ba@yv?-cGx(*T2FwHQNeQ#8X@s1lrcFVowXK*;x|M=A>!MP)aI;@k zTOU8BWeEzmm)MT^TuekH;M9JV)-oubqExzp5SyziQY5Ub4kG(|;~5#?bu8)3cptl- zK2RG+q`~WxiSzrk9ShSKscbD#u%}F$R*)UT%FvtI47M7$Qr!uUm$VXEJjZYq)IdC= zR4RI&ufH+#B3kE88s5nweinIQR5--2Duo9>VYUc;>2`kmQE@<{x4)@`hmTMb+cH*B z{%AW+$l)n32HNcg5{QS9bB%`-EW>kTYA67Vf7@4XmwgJCPVDInk2@C>GVBsHk+HlX zXzMh_o(>71uk|A7^H_aO5}0txU+p*X%vLM!)Ro!x@9YJJFVJ-r5)R{cZtcv?POK~m zIW$MG-XEBUt(_I)J_0FuGTYfI%_v=l@ti> zmGra+-&>{8-Z;yhz?i8%&>2fdn>A8{QjsSdcRd?}Y zR05}9&%v1l$AU}uGvEo0i*Wvgv#fHE-!JykW9K7D5;>NO0;yR|DfR^Fi9;q-6*4aUi0k+$Q zb8Q~0cob|)beoC(?JV%I6>{*M1e9sm(e2KrR3Fj9Si2tpTj5B49pix#52Y6qq5MK8$9l*0f!>+hTYph^rDn2QXI(ymi9C7R!2_fK2eT9(s z)AoPeSOw+iF%qQo^_r0&L&tvfU~!_GxM2*tHkZ{xrCngTc4F%uj5y5&1#=Y0`X0ZU zf?n(|_+@G+cZJfFd`yUajNG6zLgDx-3~o5G;v#|G^H`vl;2#HI9KFD8q; zb%NOX7YJ1=eT*gByaXwpFrQg0*||s}Y?=55E!Xy0GjDQ+FOr;1VYIFbx7`f6G>Zy1 zqN;(&z2k$6}~Rp@%K2{bGD;0wv0SxMl51K7Xp zu=O=*^#BTetb}3v3xBKx;W43Uh=e9nGCbxpb*CL|w@G2T`bRV4(agwWtMiStZdU#~ zT?~Vx^|Yx`Wn18FS;jZ3Z_5g1MgJS{^UJgU;`8gbCbRX?Fla-h2VfEOSGi%6Yk#x> zhOhx1ix~`|vuwB4|CpivsP1n@-9NepkR5p7#fj&b22>nUU($KPSMprIkAmM~;5|X* zyger^metn=Dl9&)p{sn1y_(-)q(6LT9FVQLbD}n0F||ZO8=iKG$E!a1w8X@!+cK5| zr6(M0ChYDPk`C%drh4AUaEYKctmZRJGN)59bGRt#JIP-y61<&iVuauhSk?rBVrIx% zAkgH;;{yk@O>wMQcg=LvOjmbag{{EX0Ziqc_HFb69|dOuQ8_Oj;l zoquUrl{V{>h%pS%v3M~Wz}o5iRivsRR_06oj|H8msw%B1KD4f#DF|uVm)M}Yef_HS zRGf(hVkb3WWbt5w9N8-7-IFogrP`Mya`NNrZ|JqX z034gDDj*f{b=FU`eG*F&;dq^723FO@Nf$fP?IOnlsQ^DAUz+M$lwIa#!p~zh3QaiPz2|aeHpxop_Dffi)mY^)y@ofE;D`_x&5O z;JjR-dLZto6Kuda*lHWdbjsp)`K2W|fQK?qX9-KX$WPd1(+Ywk94G_B5WA;t_8tjU z1T#-6#vh$4Ud(8A_tJ72HMGkwtCEmia8*yLR%U9pw&@jq63c)0^6Dk~oi1bvx|57> zs#mlcUVq66-;oiXxz_3fY&c8KB~2B&B@)7`SJ+YW6jUUIf(vnobB&ZT2#%8I!GTX)IWFIl{Osb7fxk)Fs6Tgf@ zf1U_x-oyE9pgYfln;^Uky2y`O6XG!?KYb2xlXa+k4!kQaLT0$#oS4?8H-B=*l@*NT zquO!G`y8T~3zM|iTj9^y#9*;1s9hY6{F`iLtAX-zR8vMTQ=>OVtYH9+HpC zx`lDMAO-=cCjn5|7{GgL=?-c&e0!`0=bZ3~1f!x*l;m+{ef^&LzLSHd5}&`=F>DnO zNQo!n_V|QhRMI#pO<0^l4r(Atdq(F8RY4%zL$B}J#$21sGUb?{lahna?GNRA!Kr?C zYk7HnJ(*`JP$q*zDoe_O(zS9kY>Z~P@GhlIU)0z%Wz3+sMYWOuXU}YLFLlvw;FK*8 zRQcCUzubBoqA)UU)1PELv9zHQk@UBqct;bj}b8cV$Q9;O*%qWc9LZ>Fom zlB{=F=yEy>1G*TZPNKif1=h-?w0S%&^EY2C=k>ATEzyy+!0E_KTD*xbKs`!-e2*tV z^RU5N;iFur16}s8B)Lv^pV_96z1{M%Wz1$}EM@xm8kn-u|5&SLz<4kIu-D4Nlkvx~ zj)6$Qn)a~2utqJ}UokGp?2d(==fidQR#R0+j8V zHSM|Plgu)TF~UW%S4tj(?4`tGF}0jH7=>v`&y}J|wbmxK=f^E<=1#Z>{@9p@(!_us zcnI+H$UzT@gYcT884Ib4k^Y$I5@vYhqHW=#qNalCqloejFf-!wmjxZKkMp*?!t8yY zevfbUK7b8;;`#9G=-T#zG>K}B0JFwPZ&gTLE5S`R&H8Ea8g(KWJx|QRYFaiyqVs&h^9ODoRQf6!ITHlSn9ldx#_M?|rx*-kM&nDHKUi*I3 zNrCVxbb@XzFTYR1hh`^m_m8Rj_g_>{R6UpB5~f!#AL#f8pkG?YTs0Wr z@Gr?64f8Hsc~wHYfqRo-q=BU_MEmI7vkdH9{z*Z}Yj_mCg~Ly|b=!EVYY5OGZVgU8 z&iiNK_b%`kRhnU&6RVa0Eie0Un-)K%;>K4n`oKKY__E3iV9R^Sap*j2vZkW?^d_29 z%fGnX&L7C>LEVj>lqW4{iW$=W zk11_ma}ym}JN55m%JxFnSYWm4_H=zWPiFHZ)syt_)J3K#RWB;3N`=vjqjgKiq7;5B zlDjav8Owa(Uy@{&dt|IV&^LhPOo<(e0{`XW;tcOB@!zp^_HKO9hx=d^7*(}&25}Os z#P2!|gLx!X{y?Jt{rT%ID9AEF?taxh|%H;Qy1Z zsITf|5stM3?Ft-vn)|(3c_h6$KUwQ$)>h4uHf%Ge=Sx1)U#5t2H8N4v+PS#uiQkSO8@U%%tckZ z7u-!#sa^kuFHu^#*&KBq7|z~NMFH}#^ihnX$US3>qBTvMOCzt4&8P4wZt<9gp!~*O z(&?9OJ;PIkSd)bj*MhCc>Dr&@+m@>lO^G^?^Tf_uXc&P-%~t z0zS<;|8~pBjl=m$QEn?FXx{)(5ZZ1hns2r_D<5qfR__a&x&#IbYaXaZTfl(fJaXFA zesoGYWA;f8rbQlS+=m&_)D7ZPaYn?@OiFMizWIWV6yKQA&@ym7Jj@Mmj*V3;c<)Bo zPoI|ob{&NQDhY$~$FUdBS_IH`EpR#pDr|g8oN=elSi-e08PzF7e{TSk4$q5PAgP&l z+SB|2%DLl^WO~ndn&2D{5<8D>xd(bGJWRJ-BknxIaM4%N7Lpd0;??(&r+5=S8nG`T zR(9BlJ@x#B@wUc!m=oWhpYly1_Fk4VD=V#?G3qhRa9|jgB4CY3p9MscT^frMdbaA$ zh=6iaQ?d^i&>BwEV;N7I@7deTlUnV>?Iww(38QYK=k(>H>(sKIJ$tsb?o*anXHj@> zx@GtaJPz*{IWMaGgA=+#xLq;}&wCGR<#3gt=6^31Gg0-|GkN6W-#6io%o1lEUu0`3 zo{Le_sDcsTe|5SpJvS;Voipoa=AZbwQtSi;Egh1OsdPwO<(C4u3 zMM5@qPtMX6TF-^kDwJ$xZDA(TmRK6fJWrKy#w@!r2_xLD$24*9b1@lc z6eXJt+Yi-56bpmTke0c;D$yjjI5zOWyZxXSPT7dIFgH{qY&un^(ZsL(r%Q$%C;!N+jsV z{+PSlY=4xf_aN+#FYRuEM$v}GI#^RALzS25LtHY_Tj`Qi9~tXV@OEtNUSeH<tk`D<0~A~nuJ(~ z7MG0~P~^*Zuc$;3#)#UHD0sWl^vG-bwn`6?m5TA_T=}F^*cOKg=t-CJgj!nZ!cA#& zfVeOjE=lE4=IXuLnZ4kt9JF54z%u?vCtl#5V^>40eZ+r{KYn~sQ-6nF_{TqulNCI* z-4*2QFe7wpoUMU(9u6rRDIoGIpiWO1+$~RRc7R4vJR#@0WcL%3Fr&iZGMqgA=E0UU^4OzY&HGKQgLy0g_;n+Go~^SI|qk;9LkyyN;^?K z3*=;XHdT|Ca~d_Q0!&G^U~!a1-72-`UF1^NHXrMF;4N7d`(JdU&s6X>{+pHos^{t> z5F32=6OVqzMo^wJdJRkd^zq~K-}9_rc|KNs|BD@8k45q+_x11PeWRr6=~z$$Jgk3$ z)i9`s^9XFjZ@=FIEd%sE#FZSilekvwp`>cC!m)no1=Lolrnhg^Z|3EHXmskQWKd14 z#Dn9AURBRNgnx|pwSHt$dnUC<-KI)kkOTlI7@p(47UB-bIkvAMWoj8SD#i$~nXY`XgGkLY-%ilh;+ANksUF3z z^NBo@L(nf&z7zXz&I5{r=*CJbhTj!eJv!p@$nVBYGkH~AWmqpYD1J8{WWA^Hv50Sy zaQ49qzBR4!MvJy(l_gM!C;%h4(uFe>Ebqoh0o!tU3QIOZ!-Es1bHlq%bV36d`vZNEM;$#CfCNTG|@d{@qd*qMWY$2lMF=K za~9id!h==zlYZUFBWzDqF{VFeLB(3$@O9(~tjitG9S2Or31}UQy|l_6sUh8DTczgJ zu}2n=ZJu7GKj7>ghphzZ9Zc-NwWFMGAnkss3%O?I=WrZ~9=k61019Pd_cL~}?&6m! zhAU>2gW+@qUMlFIl|wB>oEp0T6ni(2R9vB*2_MB=HMC$*>9%RgB;AumA+qI%!>FU` zAtf883M%<X@>*YA|f407!u3m2e*ogbm=y zUHRsn8x5;$w~(k+b!8QL3`D9|rp0PBx42O;Vv~PS{6S{V8rrCp4mw|onxT07U(=Gv zX|?>|t-&}RC!aus^^WvnlD(gn`|4l5)yxZr5B)o>5 z@+h1K<;283XFQG1h3#_Nfo`TX+RTTpTYWTj%vntrQzch`@rV`9Y%lt>WYHC}q|a3! z!4Y0IFMFMl)2QNyh%C8uSYA&u%y1dA#YNZ&{tBTS!@>bp_^V((736atbY_P6s|@PC zI+aVg^u<@3Ti7|Z%GxAzvRlmZ>lg0bM`)w}j)W`V5j+2e) zq(|4nxlx{?dSx`W96P{UEb1x4muCKgTq)!>lh=Y2sN!n)2i8$(Fy*g0j08o~r1~^Y zfMpnv7}hSf7qOmM)L-IhC&2~Px)F6hDfw*Rqwv*qmMqd&J7Y$Xp60mioK#ESLrxw0;oXjLr>1HyfiP}T~g_r-{IgoiFI)jJ>b78Xsc3x_YX(DVwd_uqjkr zz~qD@;`cG_#vmG_gpEXI^r+mX!uUh5!^-xo9eNBDVc0LL9%68m$xcrN)+qa_aev*P zxxO%ch>>q=?qsGJNAgovT5n`izcKmN*u4=|9o#wKe>r_kM*6K{gY>mt*x>}Me)I`| z=$66j^}BVY^S&;%W5IF?cK{1>lwP~iUG$WqFEBL&K2~`jM&Z~JPsOw<{Lkq`rDSne zB^+AD*^&6fX6-`mr3Ceb}-B4F-3ZddyG)W^mv>g4Xfe=R$GqVs;Y+kcIQB?k<=K+uBtka zqw{-S+VT}uF@qdMW}MUKQt;XVX7gQQ299%J~tbA+kw zSpn5Zfgo8B(?Fag-%4{>wr`j1t~^3emQZ|eOAeci$rS1<-yO_=D22MUjM+D^Mj?C6TB zNaRfg7Wo)?Pg6Q{+t`W z%G6dMA9pxOKOaPoEK`xMoeH$95UMF*8uuv)2<#<9M_i@j%PXB%_cKbe4}<-SNE937 z8eZY3G4bw(5^C{gNiJqp27UFKsq{yA(H)(`d;(F87nS}StoGZ9#qNg34=XFs2L?u&*ON_HV1U09H=82X-@eOu?-h~vLtu7RAAy+aj|Xm z`O*$hI367arU`Y2Sj?$_;XZO1)3r6I7l5xmd+i1D`&L}A#v)~jh@)4AE0ynCN3RB1 zmvMoTT%jZ`IMNH}@GlT2|ok1DI^Zn~E9DF9kO`|*lRYHX-h}~Ud z;R*EI!mq)V@Snd>_pdX*}G#D9!$5o|YCS&A#A1ujFF!nP%#jpvtfF1n&zvA4;M zD%IRjLskf)E_WF{&sFHg%Il|ri{*YyLYM=0`OBSNOO44cIRd*RUz*oU*sF3qsfDwT z{zmI+j>S#bQ!g)2aut3j^Psn8WYrMKGp&;<&ugA>l?Y#}$L*5J%GXgCg!8!b>f1F~ zK9Ph~+xFGHBW6u-dsM|H@;1#&*^M@Ik>T3lPN)Sk&h)Qsa8yldj33f|Zdu{f*sUku z&p7ud>18`QaSTDOsM1?qhqomoR0Em$~CPo0bi^iTTgN-4{>7T^CXHeIq#DK8|dglQD zHNbMQ)~@mvGyFnABUD$HCvF&PG!%MlXiI|nEDTdr{G1jD9%HT1sh zEGkUO&N`A3I|quVi!|y?D%CI}hVXxUZk#6Nx=ee(U$)$oH$g8c>V_(ddPk zdf!M`o&ivh#rUowc5f$j-9lBMygA8qMzCUi$)9l(Nm(Y)s^%w1Kjs14v1;zl6B?Id zOXf$IF8;)5qEPi;tPCr@8ic8#u~Bie050+V}9Sg0`q=mT`r!Y z4s1)Yg=Av!m~9o4Ev-Qoi~!?QH6_7{ofCOIO(Ea0dCRHoWj-&M%@bW-0e?1$g1bqn z#Gl?|x2ATRtYFss<4h&mJBss$F=L8Em5J@NJbKEOjm-MTH+)iSD(f(3y(rn3r>g49 z8`~dgpOeR(@whV{cgFfVqoLd7aW8##d#Nzek#_8;k(8_Fi`tdTbaGY3f~_jvqbZbS zHN9?!SUkW!kC1T+t6~P34KT9aV;9c=wOpSY?*&xhDT7`QTSNGXhtUSS=@^TF5N;`} ztgw_rY_1gN>!;yWNVvZFpp*HKwbC z(I(c!H+~=-nwE;n*b!ZqifROa!L`nI15hQVw}mrIOGVSVmsqjeO@THg-?nD$O-t_A zk!mvnu~D^qUiwfK*V;&-2eV&FiW8>#UqrSe-eU&c`^582Z~O3Fk6Hjt=xWTSTxzO^ zRom9RFdeF;?4jr-+OYyQyr8A(4;X>X)p?A7)!hZDqn<^+yom>zY_=p5MJeVpv{j0E zITauOnx6xQif6D~F#QwN4m_={fv*gOrPrj(t0Ey>&<$QY!D0c5*^fQ@DhR17;VAv9 zd5{G=CbJ-BS~T-bGNvA@fvsIIyAUbLU!y-WNCBkh%Fcl8=+PxKf4+xpXsJ4bH%XVm z6}ow*Zd}pzcqWEKX6zf$#Gu5nMwq6TTBExV=Pd_c84bhK;jM%p6M4Awx{OipluTuT zh*_u2;vQtCs*HN*WshbSMW^Rs;Er#+*-xSFymk6czP4BQ0K@db_;o_JLDCWh^{q*h)(nH8msTK0Y$qy}9ggn~B? zd1ahE_e-YSZBEt93cB3bplI%?Oo^D=-FSf|Mpq-tw-?xKBN73;*Ha0(BAlbc*$n18 zp)jjNxVa8T<<;j4CRP_yJmtY;2wr5a9U#~;X=ElGR%&(p7RBdbnj!_mQtTeB9K(iH z;f(Y%Lt2#kCmZdDOZoW$FM+4`Ogdl4V7F|+TOI>zpO^&x17cw}(7&>ZFx~kouD)JY);?dLK z)&}r`WHoy>lAwo*kAg%uyx|K_2@>C5PeW{WJ;m}Gu!c-?sw+FXG%xv5$ww_XhuLN; zu>HOjy62tZyKpE*!u7yR{@K0-;d(Z|y0)x+Ra5Zp?rwBt-_GDERTTW@`HSbzo`3i3 z`HN@wf$i+ucxMjF*_RXT;|2LXRyD+jxQcz=dXjw4J{!uD7gGLSPj+L?1V@Xrrd^b; z-_5yMg9L^)hB!z8CJ)|Lqc z+DONyW~e&uvkGc3eiGS1jK?0AD%&|=J&*G7Rmm?Hbm|2Z+G9-#luQy{n-158{JEMl z*VwWRIWI%C?zVPImddQ9IL1=uTAwbI-1Ba-nlLB^TB#^w$CiGxask9_%?l(JhJ|J8 z(rkbfyo8;D;!?O%g&l$IGYL)7Q7Mu4ER0ttt|18&tFo~eI$TA=5!UW2KNi;hi;gna ziu9*=+P*g?1#4Dp&ATwq6Q=fkb(y!LFrt7Xoy4zGigO`BweT=5;$_MM)(WDMhVWiU z#iHYi`jPcB9N9D5@sfos9jPuSFi^1wdQH)K#RC`EqLrqW80GjV9&5v_(yX3SEqmAn zfkAe&eAe);VguM>Q{kIq?+TRp|0|;K%yz+2?#2GYz}Pu04skTIT{fJbqs;ooa%l;J zx(awTI|qnj{<%M6@4Jno_`A;?#rXFt5go?)epIF|HY}ol6uQQDZHE%!Xk=5g^e$?^ zc0{*JjeW29QYEYy@Q!T8 ztSVgV(PY`7g4`X~S6R=QMfQDZKwO^5U>#8EkSq3@cEPc4;KV5?qF9t?>9R-1UJMqFDPL+*==Cxg$PZw~n=P^4?5=** z-4TyjmH5;dzSC|rZ|A=MF8Xi{=o(|-Ps_TZrE#)xMhNKW?W+sx+tK$er1tG_ZJ-$H z@yz!yIl))EwJT4xtlPoZ(?CE-&l#y_+z)JIQQshxeBa_PXH%DkaiB}M_SEDF3puzCEt0$67i2iw3Df$%__Qd zNuz8uvUOrWDjEdL@!f>o>m%bl;d z@uB?QE@zhaf3k2Z6qF1no)6DpwVr7q*K>h=pt!Oo4a1w?Msj%Mq?^!~s;`}HjFunf z?pk0cNer!^qRH{KY&?o~Y9D3bD`6h}D=tJ}n<2rmoomXart$#TFy8i^xzG7y#&h;IdlT#(ZP>8ho-qKNwWyD=xz*Hfml6( z_ZE(-)1WbUSc6xA8Q^)^ct7A31KN+W(QZp51v+dkH%=K{^qq{S(hW7UF;@8T6K1Aw zo{#_+*oTiJDlfu6%fG$Y)9=9g)PSAKJwS3Xi>4v-(GftN2H7{OY0>^e^8_DDW%%&z zlRg~d+$yNs7lze!bJ|~Hr0nYu&Zse*5wHxlxEpy0%1KQL4ZDxQ20pBw2JYp!t69Eo zrFLv5_Sg@Nn}f;EnD{PyY{h<<$X=u&_tDP6mZ|^Om@{+_FPeg@jdWmY)Zzq~8qskQ zMu?G*A74~AqL+2C8+ByX*rGOb3=oNuR%}4eD@u)DWQwZbY^K$XVqyRkbhI!qI#4xL z>ow5<94b4yb8t9MLZr4sC2;sDEk`zvDoZQM3fHxK4JZaIn;X`E4;uS@biv0mo;L~kec$ux3A!jp1csLTQlDwz7G(c(XDXbVC;{sH3YKaJo^VqXHP?9 zFX6no2I2?S`N>iL(7YB`wzD{&INyBx$3N6U^gb529DE0r)WF4lJ-b3U%JG_*RLEEWsLpf$o5_;NveBZ%twG=YshR8az-zWe5B+E`u{_C6PPx@alzRK)Uk9SOm!(>+->CGt= zGdL5y`wBEmc>ZhNZv91JT3kQs!30Ci#Ye@RyE#HkPb%qMo(CRvnw8fjT8%~~#oho( zGTV>DZ*$SEI|xhZorC-|`!o&bcM(a9(z}!cO*(g#ms<`XU7jW`HNX;v%+{+#%kT^O z5j!2OL7L)?IiGXsQsBJ~4&ZbNAJBR6!E?#iza#*1K#jk2G@neN?Wsi~(%+gUT2QJ0 zfp!NA*yoE)j1!nAlOOge-;}o!rPsB;W|NdPv4vm>hum$#;B8!?`Pr;vGFc?O95%SEittJAM2TQ zxc`6Qf1mIFu?3>~0>3DT{yuG{i7J;E7v(@H_4hZgd$4i!x@1`;%!c$m7ar$?RI}(9 zZmfgVuorMF&Eq+o$?Dw5oXzB(bZm5Sq{jzKrM`hh_*f=V9vt4O+Y^y@WHl77v2xz% z{6$Y?mRjuGV*!f?=ZtaVF|w`uslT7%r3Dwuh@p3x1*~A|?5jGHj6#a}VDDtlFT;1w zxVCoZlx3fUA=x~CwQudQ1DH?RWC1>S{I-p*-gkTfwKlRS&j{T%-veCNT8n zJP{~*@-bI3`9}@ugae|&lGr=sKrUU5B%b4&=vzYFRbNuXR%Cms zCIRQWcHT@~K{y)Ukx{&xTcUC5$~?$b>2TFbsk;E)Zt*1#Re_E7*b$U%DL`>3E~dBq z=p4L?B24Xe4lG~X3SY*JXJ5xaPMB(DU(wA7;1GKc@MRwSnd_6bx}0hiybHWdr~fr&X&5*zap*Fh#0a1q3h)M>LXC(Wfn3~T z9zC>8!qM`#0P&3qkA}ffG2p-n7#Zsv;(BpanK-AK$yXFQy-2r-EHXKnV=x_7MiKk4 zr}trQykd&IL^eF$lU>|0!3-R@kuJj(lv5rCnU&Da0ATQ#&&_Fbwcesjp4lt)vkJc)^TI3#zJL-akRJCfGsl{Gd23*LBC3Yr&fL{vJSG4-Hf|K?d z@hR(5dgIdAvPyqMV*CLxsS4e#!mEss&fHy|yj()eabhR)cyw+D7vYhf8jsyL!N@)? zEK|&ULJ%_6IYRiMrRlB-?)Dgw>>ORYAh|3F(7}dE}c}E7=_oWfB6Z@Kf$s#(?ZO9_R9$ z&}7U#wPfwvE_cvgwu7%+3I^`dd=z+nDJovct?N%#h*^qvUTi*G1ItX3_SwNU?BDf_ zwa;M>_h`v&(!ZkNFLLsXyI$59)!tW?_)Q~XxNJUbp(%(V`wCVi z06D0};KmbCLOoM@s7jJw?TCNMwGXIl5j%9It zUD6UH9pB&YasP$Cj^Dk_bQVCo6}3QBYpz&cpvm?9MVin=^-y)mes!yEUXy?4;0&K( zDx<~dG6`)LxL7P0S*HV6N(ABuVPiweP0^Nj*N@oZ2e4jpGmBvs`K}b8vtdh z`mT~-V~yl^?l{yp-P%o}xp)TqHx}*c!pd#?n!0wJ>!uxtzE552&v^R*67p}Dd$0

&p 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¤p`Z_sgKfl<ay1LP}E%;H6$da zm6Mt7(kB+*35<=;K`ecg?69zwmS>!0fHu+|%Ct z99uc3`j$l2KT4O#MV>lJ4Mv_YD(cD8{fqh@uk@36%YuPlg-8={ZK-F*t`c$D+WWG! z3Q@|XR>2dOR9qR~)n0b@k=93xY@r+N=ox;==w?x$b;nNVDiv!c8MsLqJJ>yZ0DkwD zcxFu;P$r# zsy9G6kK{7!v-ip!#})oY{FpgYK`}Tn&iRxHU2{+Fsqq%5nGhqKb&K+A_TJ%^K32 zdFRx*TDf+2V5gw0^1Th^*9))t<6hEbHOMieia)caLTCi%0vr@128}3X3&ofU9oO{@B-w;CBmcOu|b9f+wuE#<*ZRUY6R}WQMs4$L(kYbq47& zMGSB)3knIz6EW@si-`bXqO&`!Ag|M=!P@$LbhCE~`$+%3TEbK7>LXUXEG0m-7j=|f zq0XqGON}>|sCPrd-lqEyJU>W?Je!n@^>>tvx+;e#NRd_a7qV!LEV_)d$_!e$hw>(lckfGhC$EMT;+NC8C^ACPxeib7Ig%SJm#VaDFNR?&Q_yK{w zJ+L@fb>0zaR;$34g@_9ND}b=?sN;PEm;GLa;}PGv>qb$^;Sq(eRGvdiEcORroHaLz*mL{iOy@43Qs$;47#)g2XmLUCkw%dg$BE7Ye z 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 (iFt@!|QIo4NhR;RG}RiY14fDepP{#|(OyqD?I3 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 z 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�j@GRdc7Ljq4$X7|PSdal#4$MwgP zu4L$Z&xB`sGLP}d`WVbj1leq`ve0o`2=Fn1)O#I{9Ht3Z(cGmo9sE-Q7Xt3NtZm_ z1JdTZeaFC~E%=TI{c&$bhqLxIgamW5z|AOzas6TKH4oUB9QwV;>KI+0c%yWG2I6f{ zhfpy|1Y~8;@4@_4J17K>2*xAedg5Fw!y*Yl+#TU+)rC797Nrgk(35h0$U3QYZrJl+ z`%enh$RmrR#3VsFXIWvBqiZumi{dA zS%v@cGdXJpof|5fi=snfCr0%S@<12M(e#}wn8|O*W>E=nn59f}aZSV*)%GMER~r`^ zdUKgPlrlijhWZ7B77&GN=CIu!)TyUsOl=^Msj1B%YC7KKWi#G3Vd$)zbT!d6ms5*N zPPzsB0~Be{N=~=Sh2FDzKP|HV==A(~?$8fS3DECMapSTh97ePD{Z9etZpv3+(=``T z#BW#=EQVjPdKK5>d80ago?xf#d7jC2$XdLFMk8XIMAJtfPtg+Y65?kgZFYH)W@AL-Vo90R!2#gBUyZxjKwFhosSqe* z<+jx7G`=)0PK1lD7`ptH=ckORMiZ>%DLlzzR#W#x<^VfsFcvtb3VO-itvSitj(8xixzo-^a6W%(4|V7~ogHY{5E@d{mL z2RL0LI+xvt$gi}RHK|uqdRZXyGqlNE`}DzX+ynRINa14WeO6XKW`{U)v2EY zz39m0yIHtQp22R-irIjkB&+6lERk$3c##M%b3T<%CUc)382J1?#`15t(rjb?MnSQv zNnk?Wo zK`oHTm7VVux{>{RqKCq#B)?wsE;H%60Amq4; zu(;atkc~6QoMx&@1l!Fokqrc&x9yg9jo{kCG_5chQ=qU zE*921lb+R=ZU)X+m~St@i$7WBZ(uLDjT&p8=8yO-)sFZ?+z8Y{7KM1dh${WoM|^6p z-}O?b*k{El32cy7cUMge6-9!HaK{als7FJakN4AMt0!BBsQ%%f&eej^ZBda2znyjv zA3?UJ?y)tiUY0jtuYV3qkAUm$nd5E*)hWF24i@O*(OfLc{f3NMB9bCCQ;cvuTc1@N z#StEKmtQZ6gs9!>*;4u3WeI{{O3>P`9c+k&ozl1V<*djg&uXw8iS%#KK=EVyX{408 zGCR^l50A=i6J}SF7go~O^&Bo@53}ktnk!W$BdE1uqkmZ!Tp{BQx{WJp*Zool``a6v zsz}!ClFg+I_wj6@!n2BpZww_azG{zxO(2+6@)UrEQ$SkICq|cdMfs9Mv77LshFe|l zm6oa$h(uCt8L)`(WH{JZ_>`#B@H02uw8%$H-~o?K9nRm8sLBQQv>-9*gD$O0hB7Em z3>Z#APJ$s8|3U^mZ&*s*;)*+P*0h}1Zi*>B^L#+j%L!ct8298EwZ~vTiR{ZCVs{SqS{yYyRvuhO z-isr#vbT{tC8hi(6hajp?d~#Nr(% zcozUh#O9!^dCJ-fx$*WUpn;0?K4bbN{%Hb59}vIe8&Fc#Ue}H~#k$PSq;5)4F6jrTIG(`Q=XgniU%r>x5WQ z89}wQSZy)bu25@kQDS>A{7Zz`J4R^BeB$@7Ak(mNmk6?m$}!^3u><$RQf9lU z+M&;YGcfPo@+F~0@gm~Oa%q`<(^t_dG>iBe%oeBCQ!|)#2s-R4_4W27A zqc-zBUuWOuBPL(m!DjbrqU?5iJe_5j42?ru8hsqi&e4khtvZObQ{0Uj@S+YYf&zh! zJPpr^HPg~O4?K6b+!R3iqxpbh~(jwp5Q2`N>&_MdAq_a zNKY-_e$u|r5B3R-4k1XRW498aB$BtT)UvHYXfi9^%8u0*DSam+Hqa4%csTn~Hx9+B zZA=V?T7!;)T)eCffQkatSb30uhIQ}I3Us-2QlQXCnsKk9B%&3 z%Z0T3e$)B1l}suN*54Z>;6f3=V0D}r2~$JaQUp?9T{6i0Do^z2woqH;yX z;&cz>kN-x8b~EI9=o#1q&o&ZAmLId`)3_O~_UGcw&*z8a={^UfLprp^qlPH9>}N zunN$Th9Gx6k~400J7?{8oae&XTw(Ux+yEQ&G{*>%hI1YC_9dbjrx)rc`D&1JwG>S?zWFi89XJw3(L!f^ym8eDovu+zvx0GoNcLO0Q z8j7xZFJJFHQ@9=PT3-kAhvI35-6T{^(v%G#1&%|7?;KE!0sRwF2sHx&>xB6x`~GAG z*nH+c#8o<(uY(eCOz}fh(O2!bk*7>q$5YA$&g5Sfb`dVGmh?zp)hRcHZw0p4Lj8RP zp{~_LpFk*%as2!ZeFyCgYnS?*$=2NemYs^^sitzLb9s?MVN4kno{l5)!o5Z_MNsZ@ zaSs03p}&bzURr8GL(q@VA`o3L7wLmZ5)e<*3mE-c_&&V|0u1Z={i zJrtzAU68J-0T4bCXOP_CUG1d+;d%oEAvmD56E;c9YRyl?#Y>iILCwcqOQig%Tseh? zB{a~+6pe@9)9-DmI5*jLrqkG}tUUv?351UN8=PCIoe~FO2bEBC%zgmwJB<~};q`VD zQqLasa)nLb9mLD}cL-&&H zzpl5U(B#Oi?j&6vaYhHE?Y}dgu^VI^nf7(XS0oupoeW3B7*4UOFBSs*T^vuVeQhmn zKcVXrotgm)tUxpeiWur~=eutUQheBSu!M4C5lY2JTAiA_in~Se*t~ct3zG_{H ziDAE8MPt*RLo|3*O(@|yv&s7*@etHx8|Iuz2}8Xgs)(^v^e(;#FZ&uSi>*YLhAzXG zi0rk&y$W#CqxIC$;Vc~r+GqkCs>mix#GL%NKBbDni$87j zHc{$zS2GEFVLnt`2r4Lxgy$lv=z*!lLh&I-VQOeod1>BeNIpbk);69YltCpB7M_Mab~7{0Bj_DUvoi|obLw2!w4Nv$G~ z;*$Ir5L_-R43F=eEG7;?2?)j%H{){?xb$qGxMe?w^-7n>k{TXSE--iW43?G^Gq)ku zJDfTR8>$FzEsFTwAt`~Q4Rpy1S5C?2K^Vg)PM_G!Ts%&|b~CGD@*E4iLpeLTDOvbX>R0uLt0jdUAfm`tDv_ z46nu=7ugIOv6J>wn(ZbYG*DgOe_}#oyf2?ACxmOqN<Pb{xxGTu*S%Hnd8CT6SE_2X+c?xjm-%tzEZ@cR57YZ4*D0wz>~&+g(c( z5cPl=xe^+uUl~%wd3D_? zgxjT=ea2y9tp=aI^kvf21;;u<^~epXbL?)0Cl)!NF!v;fAMczi>UJ|Iog|9iAk&A0 zNE`8MN2kOdg3EAp2o%BFbt)R0WP8M@lxcSPT=I$xHJPyg4*op|Oz$Lb((jlS!`&L` zuN9t~wpupfr7_?Itnb*QN3@l3bl=u;-@=acuwv>U^N93HF8|{KYur*)G2_ zW4Jk&B#yVWYsZ9Wz227vgQ*B{<;U!Py&U zZo5X^9<-ALloF_nHxy|mnIFm$P_ZZP06g7tp9vL|k%q}^jR&!8SD6t>tNqWF%=@S^IYBc9X4R8ePy*XPjE z>{XusP6>{>oksKf(D93zKI;qxTPs1OdP}|ZCb@Jq|LfYqNBE9)6ow#Z*R2h`dU4QD;nJ zLY}KQiRur3mmgE6nbx~_yKUSr3oKgUNP6!B}n7f_Ms`E z8xACUpd2@_4V0o^#)&iOYp)Sx^V^#!0_F@!5V3pv>Q``i2RxHg6y~7@?yUq$4P({e z*Y0GEx_H$Bw_pgpb}Pt4FnNad?a%sGiX%c4!O%*eWk=>KX4yDcP-PlHw&&K72JqTQ z%75Do6CYrez^IU&EQ_vmY&xbS*yBG5887_U6S1R>;}pCmJQJ>6kFvniMleBVRf0xie%Wxsfmg> zJ%EbK0;-$|82&gJ&3fdtKxZr>eGKR3S)VKccYNu#?MOgZU63X60Qm4j&}|k`u@#QG zn^lHIJ*dGD-wp$;{|R`rSE!+1iydWxJ*{G7L*v7`v`@XAjBzZ!?Ku2Ls|7MP5{5;$ z)qP3!tRl{ZDTHm|AiVVVdBA(C9dJ~|qKP-==n=+9@L2XMRZtHcD( z8HM30a|6SGe7HIpuK?P$35iQ4@z|+;yv#2lQupw2F577k}J&&5ocNUlNuV4QBaNYs;5H|TBE%ifk%<$%7 z@bAq3^NGCB1KB3sji=hHEvKF%X08jsE7^wc(5->28b)QU^^g8;Q@K_paLFJXTa|zL zwE26Osm0Hk#o#7#&mY$PurAPw9@7c|#xrhjmpyP#;S26k3ZPskoZoT)4`DMevNAs` z$4qao8~;w?27HBu9_Y5IEDr1&1zY~~0jmKt?mT0L(K5qK@MR0a65Cgqn8&;+18mz~IX6_@h&U$X2v z?|^y;8FiAD_(3_QTXHe@@#NQU#n1PEaY{Gft@Pl}s>MK=>w;~Pt-^ci#*9>UKd{vL zS)*7&{H*^Z($Zd~?7#m5Ybj`#Jr5?NuP*_b1e!M_r#yvkj2#u?|#_iAl8cV>I5j7;DJX)NoM z6G^sck&fN4X+3WSpSWz&wS|xc}G8 zbUN#P18>SxTBM*@KXPmz^sxr_zm3}(W+$@*4lvTc`FF(T9yBb zbpBz=e}Vt+N5Of+x*x{>$~m1~_P{=c{}cc3w6TnG9Lz@)cc2jiAnq1|DYI04*X^hB%&a!oDMuFO-P z0M1sDJETfW)^lBeA0MFG{5Tg2Oi?b-xLlT@o+psofVsrl_zW6PlXO_pBD?j1N8|EVsBBkXA#Gt`7KBC0k{K5TPhriDPY&ki zHjK)P@yTL#hdNRQ_|VSxyZ;PfW?wg?2(-Gi!-% z#^EZME|Zw#)cuV?boU1bsU5&iiiOxHAfHast}r2o0+EQKKWOw>5CRLR`Tj$<;FYfy zzD~j*zI?97QjriSpMf^OjW;Q5@Z1nWz>(m;WiUhW_kW3OM{9Qy%ldU>rb%Q%4T0|^IezyKqjZJjj&W6AZPh#Xk)$8x@zl^(1JQsm9YeG#F~JrU1G^!B<5{u zeE-4ui>GRDnT!>FX%t_b+#-|9Y|nIS@y}=APptG<2mGu;>yZ9H60uFxYkzvP-!-#r zv1T$Sbr21Yg*Wf&8F0N{+D?A%%*X>)fAUn^)YFR1->VB!lM1?~Vz3L(Kj0X1JgA&0RQ~!rCh(`Q5sxFn8Jqs zr5r-nYpz!XYR9;alK zdjIj{LheQhPW7sjeD732wWL>t6EKVD*~qm^M>%Fr_EIjrDsOY6)O+;q5zm?-dMTfN7J~yE8;&-RKdgYRxy!#?{(KRKcTN9|w_=U&*M_;`FB7d`O&&%NQ=rew z;5}|e&x0YeyJS~dCJ$8WMxJPoYj@YXhefm6q+oEC0rg91M~V3Abg0I1x$*@Zv!reJ znyIO-LA5H8VcnRED4sc^Sf#Xijsexj*R|4K%uLw0rvPjZJ~bJr_Dz7Q8KHNJm5wlp zN8gS!bv&sy&Fx6Q@3yJE_C~rM6&dgpFf}E1HJwuJI6Lvb#8=D(7l_gGb6Y!%W2Hl$hg` zSjCgvNh~D z5a<2{(cphT^!slRCHDRSG4o##3H}8!PWc}Y%^SIZ{{?aBUl42m2gHs42O>%JKOi2I zPd9&qc=&%nJo^Vk;r{`V=>HF5-2Vk}<$poU%*Z=sLH86cxR$?BGVYaOdZ7|<^XOIK z0Xk2B?;?I_Libcc%HYEF6z016eWT>nLr~4u#BQMl(BWZ4HU$B_3_j#$jr@nhF;^Z= z4^&Sj&}5J6FxNNKC9|8PXnqzjolEH!iSYV#sIGE_rUe{NrP^2TtQ;?xF7<%eUd~mL z^TP3+3VCuz$gZ<{FZqC84mGArD4r+ZrfgL2cDSxN{tsKU?r`y^z|l+PREd8dE7>o! z&wNR5imP5Xi#@mR7=w%>ah;)rW{fZ9h!TP~i`MvA84I&+HUMH57Q{jZnWOUr;gimm zLtpq@YwzuyI0lUH~yq9{Ne(gEs zLbH8YNFyWnmj@)FL+3}9Jyw)Pxf$dFY{G)EWQ&Qw@?sQ4P$EU@W%jHKVM{Jh^q$ffuL$!SG3QUS)NCF;dy)Xv4Xi3>a7yqrWuRJSSmD}) zKDuHaQk6VKV}7KK)A87$?f9v4J&8@m;yn4|ezc9#$^R_jyI*%fRI}I?Rkh0djM(dn zXE79geGqi^eD)+hrK`V-Cxa@S_4o#KXL+w&gQ~1q*k96W!CRJjH9hodM0)st`q5sp zwmv1(K{PD@Yk&k!NS0u{5WLK3&s+FFIp|7WG8aedyFhfY+>l1O-fPbs_9S!O&^?l| z8}5jENL6`}j(Zu2zZj=Po`!sC4#H=exrjFL*I&|lT~SAzrSm)<$UE!Gct}-u7JYZw zYT#atD0_FBT9PVzt=SfqEWPEgz8cIg2K=kQaZ(R2!6^RW!P+YzipK@C)`^;T=D)eE zbJxNnEFl490^A)3!RRj5>UqcX*HpIYZGNBMXrr22S)=gXA0G$g zk7Vx8=soUx^#n0}J!0c2i36jAw#ekHvemdq(Ku$blhP9@gX@^)02s%yRUkiDk`l{2^Gt zH^@0-)~e&fEPw} zU$7^fw*sv;zp7WR*3|c)h0dX|d;XJ_8U6b+jB=Ls`8N$g{?e(~RhD&q`>}qlCSY7R zCA#55b<%l^dXU<=!D^q^6p^R(kyh;7i|`DOY=&IqM-4U8z?#O+>CE(ubfvZV7K(Gb z0`2Ed{HbUeJvV0K>*z(kwG7esb=m{zORp=ys=`w&%QlKltSJxg6ZNop2l$Z){2ZwA z?Etu;&-AD5C-!xL+Y=@<8<01qX?FPwICMEF0U^=w-5?9sTkrV(TR`qU+CZ1#>%1Hh zOju17PPD1{*ziPcphAxi)|2HGWFc7e#&N0Qx?Lofsz1s1JCX|H>n%0@v{lC>`0(Ga z`sb!iJDg$vo8x1hotae<^AudMrUWU}kXBU6HOYs*McE~ujL9&*+z_Eq;2~4rgMs0% zkJIuqYnClzY)oBaim2--DSti}B_}5*C8tjAcy^kA4?2`(17W}hAo;zQOJL;g=k)rB zlMc^wW_`tlJ9R4r(YoEVvID|_q$TM+kS^EOs`=LI0oknb9XwFeepb~{*0LBfxyC3r zQ@Y30#sXY(ya!@E-m@j>GX;S_V*L;M{@Gj0A>uD3^gvz-X~JnvX&Sd(c36XH zaOcpKP6uH@LWCA}is0s6CeiDz>q2Y$N%@a*z9obgnxjgHUqeCQ`XsLvwEo%TOW|{e zQm~|3-UzZP$pH?x$F`p+FeWs0k2s^vvu27n7^5Fweo_L#8%5+Ns~!tL-H5E!KFI^~ zFl?QxHBrKr7$Yn&r=$Y{M~NYBsH0E|{@P{?$+lim8+FnbaO$>n%W0!CwIvN=xxXOj=Xs0_}9Pu{? z5v8T5iN$Iw&&0sN;S6Q+Ta!BlkJiSBJ(sZr3^PL;v0%JDH(FW={y1hr*Zsb7QR368 zc=JsBYMg12`M9Hl5tNnoVf}i^pmm8-dL@AWlM7_r)&;Bl+`|w+2LM~P9j6}f1mJY? z?$huuOe1s8O_AjApw^`AqH$dOkR#VdOu9AuwT|O_>3*Mmd=a6s!zeLh(8kw&o_APq z1ea4}jcCtM7VpbX6^Pye7HQynf?KjzRUw&5iI)lhSF=Zkb_!;}ifAmb*&?RY@CH+- zG##Vmbwd%l&;mFtdM&J(munovkS;Z=R}n;TrKKv=S4;ZxCu|~kY6VEzisT57T-eEj zS%#hP!4c&enY5PL&qkVY!hr@U}oEbrNBUoe{xRJy-#X}|Utlw=eJBC|UegLGZA zl&#D%N9OD__fGWQue#xE*STEqmyYSfKzH)(Tyt?xA;+HUx&`_Bpphok1eI9yd0A#c zT`pgPr1z#Tm^P7hx)!?oE33mv|rz?|D9I zqKgt9xZRRFa3G+%r@-=J+h!)*7N05VTzq!b6GyFc z=!!R@XbmeKqQIh#y!7_HXKF=NuZ2^48kPK&+B+u{NZ2OUX@7{L81N3B%kilaaL(^- z{WZUQ@92QA4GEqgwvL`QIlc&;zuqYz1qW2=0V3*)_|moLuK(eU-D{N*&O9h_7^4HvOHfRPPN{ z={pYiA|xy2;u&}&PU%E&z4s(~2*>&mf3m#fk_qTNd$hik7ChBmV}xy1q2yx%nhO@1 z9M;bGP{|HQtXV)RHkeu}Nh|rk%kt=o=>ykiQ5{t-zc0_W`j})8V>OK5G5=BS)1-+Cv zQ@WUmB2lO|3Upl^O;Z@zV}iLk5bQOud&fCejGAHAsZrV+9F-kEZ6=xUC$h~BPf_1_ znQsaDgO6IWzAD32)_yi|?UBpf)huip2VCIMH1EtQAdBwS(z}d4KPF)y%cac%eIHC1 zWWC~#@CT;!ynC|9$pAG3swOyRT82DI4a-gaOjXRGV$N)*K?<6^9hhbTyMBl_LlLAs znS$QnKKiyNsT8;D@7HRTV^a6_v+77}8`N-HfJ>ldXx)Dn#$bgP{JW zHizZKH#qj5$R^8d{%|}z_ctJ&%8|<)w?8tmC83)vz#2j*=Gq$FxNM}}Wfne1%6QtB ziW1XpH8vcM=)c-_8oU2+q^Dq5$Bw+u;L{6PloP1dz@pclxO<6zlzSqh-lgQxNy41p zaf+`yjkkw8M4?4(g&Q3k_1(k}E{Sl#VNNg=l9-(qv#|-N&kW18JcTUqWf%12>kSCD zYe)<7to6KUE(zwMvN{z?z^@U0;^&sX}ag7qgOJqPxfOKdUyoSU<$p>zCU z_5KP`zXLs>XlK2IKf%R*=<0{GC*(#&!YH4n^)@#w=@Z7ttVnW*bEV3;gf7YA!+~^ZFvzv7GnO7#JnkX7145gg$;xAjBL6qH!F} zM)t6AO}$_;@=m3Y?{XZ*cL}v3UoS~=AJ50nD$*eW`f2#DlhEfZo9_2{zx%zIFO9$F zGW71ge<~Y0qp$pbMEf#;m0zZ}pyY+Lo)`q;$|uK=6j~wsDlJI(976X{jhCRcJTR5z zoW$Ox%{c7pWBg^|3@gP59rwrsyM<)Rjpi^8d{3!!k7627k*MhNo)GD4ww$_H-fBrb z{VhzW9vH+@s9!}gS}(bD-zDZgH4b(uKH1ILA3xtu2qb!<68#*%{DVNE^wE|~lW_?z zYf)X0%{n5oq-F&I&=vT8^%?}{!um>_KMeiuJR@m31t~v50)Vz?Acw;399rkOqXKUX zBOM~aUutP!qfVD3%wh&1ce|_dPvsUNY7feXavV-XGa4|`Qv%an!SGr&QjpN5r+?!2 zi+}Z+<5Yd~VeRAF^s7hnclTuw|Sf|8Dq;Eh4%dkqp3^+Wu${=5$?7p2V z`3_1xc7KhDn5Qt*)?HRE0ZH{F=kV;0mZ=dW2&fjVx|m2%*6`-k2eTE60KUXfbMreIh*TlCSQD>zGP z(phB=1-Df~G;;e~vMPRP$lG6KgVafb3&bK*T%l(oFRJg^gd_GKUOaChe)kyFZkVZ8j_?WCF%s(xKwtKcu%M$^!FsGeM@Ln5v9l`A7 zNX86fBe~(skrrUa1okoU?L!0lFyH`NpZ@P00# zv4OT$Tm_EqOm?_d%DvSi{&(!j3 zK*!FOcR<$|&mztBLgj`H;my!R>sUB!?ht4f>%&ZS2XV6fy&vP>=m))^z#UO+eIPJH z*kaAEwi@U}b(%XJ#*RMIRGJ!7?QBg5isT#8CMe2|(e2oal9N#a=``(QCG)mp9c3secAT5%<8T3v+UZhkSIF#GVytiC@PT;K)wV}Yqb+05Jmzeg zN!wk@I+{*eF(}s}6mBmeO>MC|m#|Z%f=@e8)O@g@tlrjQ5QBC}9@PP-mG#KaeG$`$r4Yd%yB1wvY}Jz1HMaRld)vS3`8ue zWtc?kJj>!nMm50{tiZECj#G{f&^X zOn(tCAd*m42UN#-Z)gCrtsTvOczQ=j(Wx5bs(g$WxNTvh)Uk%hHn6Yv@n#uR-Eutg zBZ_Wc5jLJ$yVY{Qg2}u90J)lJY#m4W6rJc@IE8o`V&ebON@;w#xD5LPempbI)Rui? zG|}IDO6vGJocHr=DelwDpC%}VZePawY&Bi3hx5QUMFd7U5l3pyIZ8Dr2xeAnSwcb$#&eiBiT|M}V zVw%lv1tvn--ZZ(6LUEWsrr3MDX-UU5W?|miMfI2x-zgiZ5G1L=74sYFGYAER%4<*f7LA+=MO3MkP|!htwfCaJY|{bZidd{dd9B<)--Vplk0kh zzdd9E$}l{aPTC`7o-cZvR6i{93f0~8jLcX{B}L*MXI8$~ny8_!lvU<|a0C@u-36KK z>~fqtf`b_CSJl;e{o>iV^qi>(LBHI%Hn4BT8jZdaQ8U$Y2Z)Nwrh`<_XnAVW@cx8B z4s@WO#wA4hCE?FbiKj0cPmTDCpP1PD^x1n`$$_u`Ls|oho)=`(V_a2uldpwa7^ArZ z`m6~@mQb8@0ZA7uyONU-F}NF#>i0U4@m}GTqcO#@EEW8`kbaRd{)s8`Uv<#19EV2^ z@f{YGV}$jWz4J-d+&tBM4;T12J6C=v7znu^F4cA^!%3H=G*G1!yYg{{bc85h(~5Z` zFUpxBKx=t#?yaXSfOb9bR+TRJ**5Y@bz+>KP&n#rh5}N5B(j#E)ZEyP(lpvgL^{J} z%~_ui6iX->%RiAPGALJ~>jRt9r&g!mg+wB;g?aIM*4598&9wNyXJao3Tg^^Q|A?5& zQkgoq7ImXDQh*TC58AO2z$9p#pp?)!a;5O!?i$E~l=Nkzn8dTAdv>I?y96j^$mVmE6C2L|TyLC%2K{0P@Yu4AzJeQR& z93LyExI)5HcAaW#d#YfUwW)m)wNpezB0}W52-g@gc7LVRKot&xp19t1J!|NAxnVIq z-l$Vu*?=)up3ehmbkLKNZ+HvHVl(WWi!vfc;8YnXTwv2b(`Th3%5FTz(mJhnKr4j! z{{Uh@oxjdimOAq|dxBbq$3T~Wo@G!sxHvkwAnPTWTPgtbgluFPu(7EHeH}rVCOi}( zUOei5SsBitH|RcpDzyP0CtQQKvL5qS*+f|4ZT(z@`cGQs;81kgp~Gu7gw`44bG)Sx z>JG)67ObVKBfAl4nK=}o3gbZuH}DuR7aOc(Tty&3PsTeVv81<9*G|NNcT%BDiyhtV zY|8Z!J&d#eNl+`k=NQ2LbW^yU^J8`QL7Uok`Nwo6r>rCjS-(=*A^u-`z-NhuU2}8V zTERAo2`Y~|dD-C{@!S~-A;FpY3Zdwy9sZuE4$ILl_NVgoim^ZIj`kVA;>4_qx1d;d zPh+@Hrlu>^VH)X>L)#)Zji-TU?f|@~2}=qo=%7lB=W6I``q%pi!iOI~okH3|>!jlC z7nkY*0eOHW%t*1)dVO)oT+4^Zfi#)d*^sFD0}?`;W1b6HFEN!cg$(;>b4nI(!>=TtWbx9jIhywFbL{o}N_ERkA`hy&rek8e3zrl@+)zEL#JDep(uD`tnmp zxY8|;k?C>R*b(_IqBIqOkK_tiyLi!87?e@fjfTw|H8yJhh?VPc$4<;q`WQQu4bsq%t%Q%$T0 z+yl$nU{KEUUkQbVm0S}lt#y^fEYkzj76R`l7S1|&G?F+IDh{Qh!tE!3ZwNiFEFC5# zbFfyV4)J*` z2gkhD5%6iAG{CH(_L#F^h^vbf_B(~5iCgnVKP|mq+Atj z*))o;{~km>SQvl#OQHSJ8W6=|Z&3E~f%zX8&qCYX8i}=|5-)H~Aih3W2eim*7YV!j z;NG8U`D+Dmi)E>whU&SYqYVCjc+2KgWeHb3V)x-(NG&iHS-uTqah&pZMbJ_hAOM-C zYd*;o=T8O`ES5&cwUS|qc7kQYa6Si2%vwF}t?R}G|U z8B>$BjjzxXF8_N_R4>WzbSX>7pBcibSP5+S~R zeJ50lbD<(B5?r!}RH~Y2WPJra+-qXJr()fz--9vKHQcmAQ85&m z5*kNZT`nvFC9f>L4^f#rlG#B&ZW3 z)@G@^GTVpf}`(#g~9L zT8GN#K)d2HCWhNDh-qzl(8J5G6@V=!~YBpvovymy30xs82YfOYSPey4(d z2oQ$?086%CV-ex{@(Je?34=K7>cJqzMCkaSI%9`bP$0`6#q?hE1l$vK$0w~4yd{e` zACL}NA8jK3r|#6?76Zz*V_^sE%uCY9_~=4^M0JXgIVQn%Ml};^6qXJZ3(5|IbC`~5 z;}Mgk)~-H!AF-W_6y&N>P^!&-?Vyg&&lm?77W3l>kGf3F>pmK`kWdz~nr`ns#V= zX!vei$h9%Rlw%5=6dip2a3rS-PW8Lr$jhti$;YaIjJYxf4dJ=0!RkAO88)_Nh43z= zO%(nhbh8kfIgxhyYG7X zp7;y?M@GNUl_etL?8~jKr8x=v)L?8 z1anM<+911XjNe{fI5di&qCZGsTLV&|ore%eHh+uWaa+LUdUEF`zIOx#uVYNOp1MJ( z_955pY;FYa_vB?>gvn1awSU93IxiK&WPZH)sJfYBUy7GXR51|9B z+zd>c6zZMIJ{in1__6(I)Q-}2!UuI8C`f#0${WNiA~xqNxs!o-zLakmRSTt$QOl()o6_v=(udl)WNjQ$ zehv1CgDx=2C(B)^`C2%qNOM&c2T^Myjauw>lb?nN%Q;s%K<@Q#t2{_Akm`XW3n^l= z5|&IMT)d|W#MRARfqj(!NNOi}Izan`Lh%K^N0-o>w)p}0yqMNudR|bEEIjHXxucFQ z+mH)U;k}PynlV(zxfC|BEp*V8>mGU?O=oe0(IjI3BQT9Gt7DofhVbhQb#bnb4Y2v%B4 ze6GA(*luGYjxXN9(cTLei9fdHp*)*#03H%_+Hufh;vk5PXvab-nqoL6x)L+&xM*9r zsH~}g`pA;vt(o28)0ZV3Z;11@3ZWS!q~D`Zpie=1a~6c+*~yKtu=3376{6BxXUf+R zb)~HMl){`|&EJ4dBvWqa8G6FusZF$vZn!F~hWDXAPUql?$6Akwm$2`gyzeYdPN7@Nh`F;kL0-~V82DSe90kdMs*0#_ z6@mQNMd0V`y^yDs;KMzR8&bkTZJE=Q;=Cs)2s)+&+tBlz%LX~!$O!Q};70(DzG`z- zB_ue`sP$DRcUfDSmTc1eYD%2tX_8^Ew@Th6; z<9}gKDfL{&SlY&Ge8S^jApO!grN(grkMIi3(YSc;E8{D0H_T!lPdh-;k-^W>~dl?E7lrlHA8ib6CipJF+Z)RtM=S<7(s2IE=NC zdW#KCnXH9O(U#Qev@mw@K+X^9e)Oc`(h5z{Sla)xUE4R*M;&1YEnTkcAnVE*G%W1C zuJ5ySmZiC#q=&~w;%!&;vUXLmH)eUXe%G-gg`rj?#Fl@;WFl*oNv0m@7HbgmFKlQE z8O7#l6kY&9qi%rB)*|UX0+b=gvSf$3veX}BX-0IB>|^9Rt(hCiRgJlvZHUW_GC4-? z;xw4d$=6^TM1Xetd`5+n2pieHT#O0oO&^fIUIw|$Uytnjy1w_kEa9>#alskf zX&ePmvc>OjIVw`7jMQnsXZ9C?7u1@Wn>W~pKAQxP$C$eOmRHJI3B3WL7cl36xg38K z`X~gxQTM+rQeADuvp5qfRor+-K z^ZF7Aedsr3r18HB+mkp9nG6;C5fZHeZ*=}zC}R{|`fGtGzgbs^G?G4xBxbLtD{V94Er|@EH%Tqe?0|^z#&2ek{&A$ny2#=@jCzp~)$98of!= z8Grfg*|m^J+0{t=`Psh(ulN&}r_UhR=TuChVw(xp}P-S_xkENhibCW3G_7n8Dz*1KZS-34)nl_A_R zjR_Ncj6sd+xi)R@V!RQ-SYj+^h2UZm(G_$fUWB;5X2G#wA(FuNq5K5=Kf0Q9q>n88 z*|*p_FZ|xF+9%b<$^*^#lA?~KsVlpgq7k`K1XJwFK~y#yBFNHT4TY~-`L!gS>P28w zJOH5BjSt>Bw;-Fk%DCd+#Yoa)m|x7)z(Bk$EBjTZUb=~gce8a5E>xDU!(%7qNa=E;`wvuCIMt#sFP)ZUNm1F4zCiGWGX-Sx6m&;@95OR=cVL;lFn#88NjqC(hM6oAes6h zoN5RG6q-p1u9IHS`bWi=W9b_M&&Nl(^_yd3m480C5%%iKGQd=N=34oqo!fmdfzvZm zaqCk;Unme>hmujfQu5daQ0ei!XhhP3IiS6kbr>){-y%788ly}fm`)Rz<55y)=aze< zr^4fO%eCUp3&=KkEo~ubVJTkym;?t#hBo;kxU$2}+-VTbt+zGIL!9{W!#M>SLF|H@ zSy^e_jM0GB3{)`1+;<_^;D+g=-f_SV#eNS zQ18U;CkM6-qi&<;^ySWV>NwAyJ==6fcLQLa~yLySp0N zuB)Mz+7YA|)!80)EOzF4K^UZXj2pQ|U9FwLic)qX!sr7e;EHWHgB&K?WY7QNgOHQ0RhhD8lcwn%Sw;czg|!JWSR<>|}RC-cX| zo!yK*SJ+3^I+S>uJNs8qRw%tWoCFC^pHg{E>XUE{V?u+7Fuqr1CD51eW6vV2&jK0n z#bNXG$Qx)NQI*NE(E;UE9BPF4uic2}5_!wku-X|@90Wsjf) zN|{O|iV$FTXQZDpGq#$03hpNhzhBs6L5uvU?Xh*vUDqnq&(~Nwy$y zWRh-~+Vei~u~U2qWx(K;td9LJ`_X4=cpLtkR}pOH>bjaJZv@D{e*XOYw<7D;o{x3k z|K#$UF-w0fd|gvdMM>53F`PJ5J}t!tH$o1NgpK&!?+=8QA@n|=l^nH~xK`-ftV+0x zWBn?Ku$42fHv{W_v#%bAqhk+ei(;e|9)$1qjv$B-emX!JQDfkx?CS^Oh*1sO9r2q@ zOXL8GJnN6(*CEQGmn+Gd>!DjFjZqGWpH6OE>r!7QBvySjh{M$=P>3fH;xcjP*jei? z4xq*66kf`E+`}b3NKqiq;T+kg(rpyUkNGubWQkujDm+j(1U>q zyES3*Hjd(+F;P28paY{5I_tnj)u$MXBMS8Rw?f75dzln+T-CyW!e&ta0_Gav1_2tq z0xq)bB{nHfpsuXP>EN^VtjTfO<)SptI!pq}Qf#3KM9m)?(ox zc0rv~&rjRzL?w4+8&>E1)OP=&C>Mqm{dZ`rXm@wV3#Q&q%wCD(yASM~efHpm8I~IX zse{khL&_r1QBfed(cDIZTa5^o8}&!lb!qWx-VpPW2t&jd#Ym{=5TOQO9ik5+^;CUaB~N>adaz=h(?$ zBpU@c zPgf2NNbViIZJfHM+gE$7t&aY1uUQl)y>+;Y20J0#hef1mhtqT)08<>jI!_WXX_FpNJ#8YUd9+Bjup- z$4D#*x&Ut=8D2 zYXr88|mx5Hw z-vdq^hw=T_!_G3MoKYaQYNu+f5<0TD3~gM-^;^r`s@d%%2tzyrESdX_^mItUy8!o2 z9BXBvYA(tZJ9U4wR!g}Kjs@DN`13cL05kt_!}O{JWUC35L$v`%Of482^3K%4QgPWd zi`!4o9o-G@-8nc+llcAsuC?+jD~#e4h{Xc2;T*>G3tQ_oc?5vl*_V$1k+K(Q6Q*(l zV5W0Mr4en=%Tf#F<~$s=;B3Ml(_Nm{Jsj?sY>1_pw+cY}z$R+X-cTL_wNJySIZ#Sl zWqWny1PSwK%#?09KTF~%MMKs*ZEACK%*?q;)|@N=Zl9-{%4pgd6=}ztNsbeB389Ry z{=Ii3lj?LB9OlN#k_-CcnLbO{Bu~D_KVTfsvzi9kmAMLE9F<~ub!5ti<^_2 zf*nA@9HiI2bQe9v=nKee6CbOjIjdY2NvCp7D*SUkQTeRYk`9KJads#^58%hh*@yEs zWKW%6vN&b=pGVG_IFad(^f!KhSsPgI!1Zo<=<*v-z!~@4Stb0V9;l)O!m=*5lK+Ey zZ}oD-?q#&z5YnZr{^Wu|CRBFTfQC?XD$tF_?u7kFRe7|rVhFcm&c%54HKr*4N0?<9 z$Akj*0O>tYTLdP^!>TCz-<6|xDoG^2-8)h+q8j75btPL0>->>GTMSVhGssb7xeokX z3SKvYROl;+d~Zx!2&-v&@wyPw`i)rC9fW609*P9O`x6i}@c2$TgJ2cmq2PMX7_ zeY(TI@Hj(WWZSZshfH?GL)XCI1qrS zt!0f+%@?M1lcxyLUa;sut9*QUrStk>h80TU=1aPw?fmv35 zq#kChn^Xn5r*oK2AS{rjQXlBb-j3pNlqPYA;*oS78A2eCD2xdZAL13#1k3Wn{@4eP zBeZvSgh46J71%V%(;m+ACM;iJy(#1p>$JE<7($xkKmK_r%UEp`u^{yO#EjH-IqW7e zBf%;W`~0E@)TAxA2As-4`3*RY-if&z5yR*bahykf$jJPwCK_GhDa7S}M@o(myThzl zdn$kuBM5-sla^eM&aotQOQ9`Ml(F)O9K2?a=~c2yIKbyhQvOsw2c%XV$iy^pcE~2n z;<4jiyFt`Txtu0yy@|cs_wZ=+L7MtjR69o79?@{UU$P*<#wHRU$>IZUOG*&$Pu{%6 znm#n@M#K#jTCgtcB8xwOIH69?&`J$880$J~jqZneoI%-G$WIjtycihV5eGueyM;m! z39>Kz9oK#a>U{!@aIl>uYEH!wp@$)SvM77IT%G4x8Q3oRd}RkH8jp@6+l0DfsDxLd z@DRC-IczP8t-!0#-ULzh(1{CH08-Z1IeBdfseIo#dA%06tgAZ}3I}nca*(tCr{5p^ z>5m6*U-wdEXDP(*E?ZLa-Q|Jv?epi)@!#KJ+U+DuVRve5bQjromyXz1H&GnM*EUX^ zmALmditi(92FAAs*9i+wFs{4g&mB4pVui-da9OHy-Lsi}flS8RSQ zwd89k)~22YJ}>wx*h5P9fLOtpt^pM>>uv&DU%uB6??NV`+v*6al!N>XT<;4K>uV;w z1T3rPR}b|@nkKWu>!Psr9JOWiw1IsVo-$2zK@Z5@Dqif}fP)lU5 z@AT+ZszDO|V||O@`h~K5RAw^r3Bw$>EkSLZUGYM6MYY^{n;TWExuJ%v5k!6NGJIZW zZvbs8&LbacrP+iqNB-iMd%cz#qg`?$?2=+#b30+LszT)!&LQ|4o$CyWn~YZn^TFEzvuX+O6t4{hz%lkXeO{Yie=4o)0Plxs?y z*B3GG$O!dF8h;#nLgn@;r%dj}&(9BRhx+yN^WXlfRKI0WR?YeAUox>l(>Yuvxd}^P z0Q>EYNnQq#!KC4U0JR`GkUaz-Bsu>Rdk8G*np7B&Yozy%;NM1?Ss;hDIW%PQ&fd{$ zmBw=;NC&}t(2{26yQ$4Eg1I~}3D9H@sXjx=XP9i10^m_LbZfvgMs|wz^)WquuLQ# z%|2UZX$`bsm@rONM<=M*Ig!`X81l{S`}J)v^99i?OLch#_}L~3?lxZ~`t;V^n%Zr$ zgjtJ^jY_ol80Rg<!V3QMR<32{giq*=?@H|)cH_D?_Cx&2*w3w{{3081-KhO9f>3Xoyz z5w`-R|GG4*fdi$fTR66%1GDPAD6H7{R-CVb<8}Qn5UeB23QguR|CH)22w@T(ny=;8 zWe{qOl~&4Ex+g+E2z-oT!VDopE-%t!mLhFd%>>Ql#eY4;i0?=!CobKRU9l8`r?@*| zX{SuWTM#Z__)`@D7?a4gtSFuf`F;AUEb`ZWqKsNQ=-!F7JncC5h-E@-j(14Lj`bsj5Zb$2~%N9v$2ZxRSi)-1_{QHsS3ZIxnPO~r@57UzJW z_)LH+On(Za!K5x#T?1a(6qOW%p9b!A6k{7#`tS_O2ej^QyX{28=cPDhiR<1`j(1)N zr3m2?8|bWrJz)$J_2cudThKRXoT;iWRH09y(a++3ke+6f+&O_}6dC}z!j6Uo zQVux%nMF=#fuKUZ1{hU9pC3R|b}Y96eLWQ@RC1kW8k)|ycVOQPO=x7DsKAPgD2*?5 zCU?_@Si$Rz&;Hnf zMer)ZDy@S+vCIG=xOyo!SzU$Yv~NXbNnE;=(KH`9u+l~|*QbiUqTIG8T;IrQy?PC|e zsO2hrjHKH;GT_J9Jiu#T)r5N5M_PwjDdx3xI^<7A{o;b{U<$gz*uru+P^mAR`WFR} z!$#L5Cv@k~Jtbk0cyFMZfMq;K$FrH3?+oMSQsx(0R#l-dR=}*Uj(JXl$(YK-UOND^ zWfstkd8A_MfIJMiguGLXZpL6tgdF0)RV9@CGt0H8HpI5t4_ET@BLab@4{TbQ$mm70 zf-#N3nso0{CWj!b*bVq!Sr!^Db^c41^W?&C#~il&s#EtDcTQ#Hw7>Bh5Gw~ElM1K4H#q(#+zkl}p#j}UV^$uMKf)L;w%83pk;^7d=RKi1m z;*hqUT)t;t%*vx%S^nOz8glppVX7(#0%f%=?j9?y1(a(Q$QH z{i}sa7sx`Gc<4o`?zLVlXeW=oLe(iF7Du0k+9ulnB=?XomY!X}`&S|BVnyq9C<4Ue zEb(k|5~tV{%mCZZQ)OBiQ;O20NnveFb+lUc;hsKxkc;zk^fJ*qvocSL#~ z7FbX<+{B>MAi`KJXNss8S(RN{mRs`Ya?V^~%eLe^W7YcG+8tTSfTcXfLgre1T`*hg z{bc#VfEehcqKrLP`pv2pEzKe(uvif1XBHaTz)}zhdq-tZsP%}O2-{~8+vFExX7)wQ zmuDiv5-3(BV=?xqEQ-gR{nsI9&f$xmQW4ARj{(v{Z%mB7t=XFQagir%?fd$=eJ62( z5oEe5gU%5z#CSF0L$u(Flm{sOgf%L~dofo3<~0RDn`bz2XRa5db6E>iU6erNX&Lo~ zE(D4PE}`cxPAw@)0dF+chFPUufv!gOa7zLM?PmF`$|pNNpLW-G5mcWG+?-aPM<<#2DcOetD%1p$6>MXV725|N3VB8 z!K~J~=H|N31X%hQIeP0pD85t~NEW;!yKAeG<$5$(N2(-u$IWH)3uck~P#F-wvl*<1 zl{%&p%(iWf+*@(tloV39rv>u1JX|n-UFLkj28JQ}KT{CN4^$SrX9*`qEz<*9B`JIy z7o6AJNrLN})R~2@XW=tk?IHsahE#%|;?TZS>E9WfaY(Tfu!9bv3Ueb8c2!q;Sf?E9 z(P_Yig=5Q?dMPx#v<&D6u;a~+RBv}zzwGXa#;nU^>y6%dd!ct(7`{(F-3W4xAqc5s zq1eheX3P^HI(ql|()n)m`wmk3Zhd{d2RtCIOW8 zj_^l>W+XxLrBz9HUIIk;<2w2SHLcCEb?I}B)Id|?yI1- z`+@FIMeP!0rda1Cxs)ZAk?!r*=cM3nLnyI)DZZZf?!Ojl{IC|LPFLEL{<)XgS%8WW$%J1E3ses{67V2#SlHn`}#WMkIU|X5@ z1B1q1R4NsRq0R5Yas=q4o8XwLQK9a1R~+X4hCypk2(7>>*!)Izk_9_;h`Ro@IFJ6t zOCj}kMDSei29x8l-h()JJU8^RkP;k)z-JEv3m)9rl)7pyXX-IAst^}j7%eQTfwemD zBN~g#|F$S;xs&bl6&9oGQ8SI~h-W=BLF=OvJqO_E)2)^8C#A@*`nJgeK_(06xhBE!s_}t?QbAb_WYFW?3QT~ z0zx-{K4Vu9v7vfA%#s+(Hh>E~#o>VgTnFQ%pljOHjiOsZKzk~yO!PmV)Pucj^4yr!4NrBO8uX0t8d z$B_X*03%>&?0~7R;I*-dJglp|cXXVkF|4+SHQwkcf+IVlQriNR&xA#s+EwL)l_ALX z?;(L-PH_n%Lmp~X2=t*8iGxjOG#y$KeM;OJUs46I+<-^ANK%?~5UEhb$EGonzS$R_ zk7xEfU^TP9hV~ooQdAjJE|qj7$aU-CzPoOn*4f%fq5@`H;BC6CkqvR$UAyW^ukLIX z1{4N;=(CA1v4o}K@>_0}&&O>!Nf<-lIkl=LH##&;7G^v8^Rh@-GeU}^zYn8N2Pw7x zF$r7gAs;`yadhB0#kPa8xPII5-F?rVE<{^alJ!r>{A(Va$tn<_B|E4RAfEpMg z`GxMHuUGi+h~O>#F~112=D39q45L*XDo^r6{2y-LC;#h-$xcuH$G6X)3=c58O6<~1 zcSsM02HDs3f{Ew^~{AFQUh9C4`#G&CLxF!b4o*=d-mAq}sq5xZ| z%j;vUMgx;V^P4oC9VYCTjCE^&MN)e2s5s3bPDA;wxFlBTuIfTTUUsQlKRJNB02k&ahdA^+a-*RHTNzK#ljwI}Fg> z??|D;|2WT_}QE;F>=3Uh7LHn zRMpF_%UoVP=ckG?VOVmScQ%kOtFS= zEqB6-KEamf6jy#Qof;pgq6H55N$IQtOlQ16@rP-6n6p?1g3Dmk_XYq<=xx5Llaw)A zMJ?CB^d6Yj&VGgkT+%p3^YL%)ojdjf<OjrL__~~!egY8-_ zRH~0tG4xfIG7vq*MH6qr|M0a^5~lrc)}fZ%eX4lUz4AE8@E*jwB5$)w8TKb6L4f%EbU4Q zhLa4uZ5py3tj)D?HiJ;?*6oGeh)Tpxz>kW}YndlRg(InVOfkZ`(iP9(P0-Roch&bj z+)3O(mAj!*3Z7+1fHfB=3`gU8^e^leK(x+^%%Va8C|^N}orvI~knYQ{Vmv<}pPJcz z2tyow$ejGaJ9?cYP&LFmazb{;LYb0ez79D8Vyc;Yjh9S?JMNo?fUoznU;((I;)`KRbN#U&8@Skvw40HO+(5x+Qnx0U!a zba#|h2}u#eE&%{4TKIUiutEgK2boW71aef!V;j{0@9!O{`(iADnl0^t_<^z%G)h8E zuU{kS+Ab0UKnBor)bdo9OKObe;FS_K`pPeZS5Ta7Sn}YreP6Oi%a#*?K4uMnQG8kW zP+}-PF5-&yeG$M0{_2h8%S0ZWo%Ll3>dg@5eF=dH_-|X576bDNhc4nt2&O8K0D>Vf zY75y>EEkX*`m2VlO=Ms3LWSR|%o{N{C z;n;=z1sTUtNvZ`DA)rn#Rj=}^z=3!mFF>H3?ua3Kk5)Yg;E$D#ZeX%lQ{NJ%F`*xr zcgp(Q0#s1fTfzPyhO$xj`j=$eZ=8^t)UPUt6hA|K@VH2PJ8Q+<0f~`ojx_}f$1=pW zXK9nRmJD?8ez)sR~NC8!+g1w&H_xR!3{P_ue@ z=CSO%qN^nfNk{kh2h`fA&1gX_GDZH6@oDmC2hh+RSDVm z)LYId7{5${jWv;Z=6Q^P%->Iwj6DnYH(>r-YeKfjiL*`eZcUUiDhu|6DbzfX(S5jM)S-ecGEgqy zzzmXrsWN~wa|5e>WBA;Uy=y1~E{3>{llfns5Xdm!d%B=}BH$2D{_^C-^CwQLp4MH7 zb&gdg*@-waS#qB5e(OwZ9?QmSj%tgGrB(DmLQ9o_9sIA(eqFuJ4^*=O5lVb?+Br*!hB_6&g0a#$jNiw(Soncs1_|_=GE6G+?~Y6;SNr>Bjm3 zUY1XxMeQK-o?g;2KvMdS%$c&$UqVUGy`wj>s2@_NOK`$j$Azy*UM)mG8*2wf)RVAU0ax?AF zlC|%PEz6cK#pv9}V+(as=EYLuGk$D6;#nd#y&ujoj=bzT#K0NV1v76pUf0TvWTB*f zeU$?8xk5I%wTp5S7D@wO<>I@O{4%9KEL5pi`;gAF282$+n0LbkzuXoyhBg=tG*_|c zS{Y&8W5R8zCai!n?d@JEFWD&hVEE5%uXHLzP?rY-Cd*f7#JPAYoc~OTB%QW|axS1+ zBFEF2DW(CM7a>WZ;jelX>ktBzzJ6w3ps^gF2>%>&y2mbUP>|tpfjyD+6>j#Jw2({-uK< z1m%8fO%Bf@eSx6*nQT3*f}>S9kr230W4W~5x-+|&rC@SsH+BX2aS#e}hR|4WXe@0- z^CndPg(Q8v2EanJ9-A4k5ScaH9z|8TW?mZw>F&~~KkH@TVvB=Ei<%ZkRY65B6fEsY z=wc1pvVO0k_pHx7vTn{$-BiO2X!W!>@Gtv0-#gzVE;@3$@_|HQ&0xc&REK^`Y(wB0 zm$Poz25#5)1KHfL#@6hyB6ArFXnAoOB%O{o5T~mBMfIlP33sj_*VGS$i7N~(8&$vS zTGV1O`j_mp&5E{ojbH3RvJEy>!+BLtfOQ+<^-SNZ0p1?} z9xs|635{B9lC~#7p*5Z1qQKLE>Lf$70|YS$Q<&{PeIiTdYhPPy>4ncLo9fuV1Iqh@ z`6=q@WiL$@l1t2s7hq~aOclrI;{O5Ua~CfIBk|tL`J=jaj`-8brGtr zF2CaA#)qQ7vPCqO9mOdM3^fBWy9H`oH=;pzh_j?cP-^uE!uUaKxQ*jrQiT}x@zMmo z`9^7X-<%5-p6C5jzge-%D^5m~txaohKKwL22cpn1&* zk3ja3?zUgL#P-5&d&vJ5<;LI~YKW)DMUu`l!Xk6esogb7SXLpEuEK#JvHEZe{uYh>@Qk`W?$$K$vnNmn70W;QNTy{Zjc^gWe-p>;joj1WAumw zna#1iWo!6Vn>IBr*}motGNa6(hcwY^+5VByY77n3qi!zMa*PX?V~w2CU@~DCN=KQ7>MtD9+ngKs zjts85z|R!Rb&s~|jc~1m&3cZ-{MakX-`ycO)FDYBpnZh$-p9!;fS89RsqDTyaB0Xh zq5+fjMF6G-F}5j|tu4XU8UnbjL~9a`O+;Ih*-)m`PBIQ98Bg7g5eX-1ja+HnVbQbU zjDsqmYqtz)XtfTrpa%03Dm~p*e#y$!RFDS}b#pzpQWR}_{5>^v=w1jFMK`c6Ic!GG ziBMs|Fo=Y(Nv<=znsYs9_&_cknEeu1T(?`NFSq%Yu7+YCqX1H<+z@c-|7s3P}KI zNCQg$MvzB8%gOuDVml&*&o?00nu#JS>2*F53T>81qsLPc8>clF77K}H3and7 zgcY^}+U?}TpmJiE);`##qbAPU;FVE6vt2m#N*vxxC!hvw$>XOqiI_I(kQ(CR#x!4; z-0DPx?nRx^J>p@JQmi{NN#d#5;w)Y1cCeW)zh4Vo9+@Ah&ogd=9b|UL+(wT%)y1{b z0rxuZ0c*s1>29mgsXV*BDR-ivKq&B!MOvT&euCZprygq1r0se7n;-$9f<$G3G?;o|stv!9oa>?wMHrPB@^ zY$`xMDrfY8L+M-xP9D}+>0m7Eue_e8?nVqXh!4dAvWSaiwJ)u@G;3}#nRzv0w!$>R z4w(ek`9S(?kSkRgVH1i+1D5Ae#FG9w3VsV<=$vo(m&|2bw4y8Z!=y+mIe_kjDNcOA zEW)0~Zju@`c2yH;VxdP!F8%yeoc;sTF7M2as>YW?#JBDP3X=Tq5O&^`h*S3=m}XNW z*uN}F%=9QpJ9&~7hkiBJ25w~tRWVyE%~dE318Al$RHdsR4AMCn$mr^OF?#+8SEaZl zJ@WPyOYa$rsuKS3(MX;0madc^i-#Uxe(K5F8Es?$ySmBsTCQLSlU3A}0o9GZX#Qo> zx21iw_A9blJ9Fn07^qVC;$@eb@q*Qtf6>F(F8*=eEm-N_vJybWc@EsCOzo=T6Z#v7go!15WG1i8!!>@=Z@{MqR6Z0aC_)VOJ zK3cvw8CySJw{@hl8dX+=;6UZPWkj(N!V#T8bUg}I|ndIq~JA$>ZQ z4Ab1gdWe?HkPLkyC19s859O3I#b}ZLAy0b1IE`iu)*h;{fSBuu)>uG^RZ1+@<-K?I zYy%*J-LNbm!0X71eX&ow5`f9?=~7i*__d(~-tUv^P7WmmB0XFW&Dw9DHRbay6dXH8 z{!r0sL&!#d@OF`>-slWOgsq0PMSeyWF=9r=CYBuTT4^` z?emLagWId<%l2snwc)^k=+_FnADEYIa-Hb6EWv9i^*Jf2zu9h&lZ0V%D;z^zxHc@{ zMRFhhjo}2aa=-iaHyb9T1tx#~-Vyy*aI~wI-fT(Sg)^JPcy(#s)L>*qN<>@9Y!BC_ zKn3UZ=z8SrrHrS0l7m$uqsyJW-~9@I`E75=Q@e`ohXUQL@LaMu7D47cZln!nNxI?g z8h9P2$B%AujMDfCkUBT7_#II=zu`A^q1D*!U(OJ7OVL{<_7!?+j zkqIKLdP1AJwdrAN(bgKDZy@p0f+A}YfGngQ3$kBt%T~|${3{h#y|Jv=&XPDko~)@Y zdlN3B%UB$LZ`oAr16$z>UpQ0z1RR|)>?41}u%E?=r``~pyb>zTz8D@hg)@QT<)tG9 z(-eb*Ta_m29pxNFtg!jKZC&j=Hu*;uJvVUbDvuOcsjR)1YRt?Ln6`=QW4-*p@e4HW1x)3sb$GtcG*RxJ)gnemVUTEi_{e1bGk zv1`PNRZ~#fSE_*jg}~1XW^Slq!Py@l&5ng2fS~Ek(e1b(iU5|!N5yk)V8LuJVFw^) z36O1|WV^Fq-4<=_Il0qphSF@{tPaCfYUauzWO*=M4`+WS4sNPnBHsW2D7vN>m8MA` zEWl`Vp}_0IQKxa;=1skb8f)L$^_;TX+yiay72?4cgybYFM9UMR=uN6b#Qk0bI{Z&}SuKYW%gB0F;I$GH zu4}+{ii_1E^OAOOqsS~UEHPuwgtXNm^Q#R0Xh05xcZ?q0W4eXqx&P#w{Kx%efyuV( zW_o8jZF-aZUQym&(mLmlddv`OO}mrOes|-$?dj1IF1uB3qRiu2L;8XAXQ>ocW$Qts z0{KNt-A3iQ0JJK-7I2+lik?#XU@#WjMYexAR!>`T+tIsWidI%p7}h3oP~de!L5oUz z=;`;NlyJ5EUd6Fcm90;?57Y*U8=5q1qC?qu1cEBWFI|*ud~R~7kAR{bc9~FnG}(m7 zxr&9dZ_Zz%*ZGh{6|EP01@PM27+D;-}t@Bj@q+0w&CW+6p&2NC%L9J)e|6Sltd0B97D@id-xIJpapfYq!H zJuw1tGYpU19P9evjdgqrMjgZnpSjrVU68kqhBz-&ZZf&;a_bcNgEMnRS zujDDMwtggWhAvJs?suV$^AbH6DPV9CONF^k@irQa%jEE-|R~7gXe}HNRnCz-wPlTx^#Jj#uc-_^&j`9Tmj;m7{5+Oc1QJ_jEJY5## zo&?}-JC@qy@()y`VKe-p>QU)7=tbY!SIRwB7nsMX;FhZ_wRI7`1yL*e@Ir`og)ZoV z;XJs;8#KJyho&Ibd$`c=*HzG|7TF2=B?}T2^_NI)Qwp$zMLO<|FV4Gl_qEz~ns9X$ zQo8t|- zh6dzqA~j`z0M^ffoLmGSXIc}iXOQuGawFEyvybF4p@#1rPYs~C2BugO3hxs?h+Nz5 zMh5ILedz4Fx308-pXP$NFANs3ddC=ex;W?!!lpQpDugTK`P4*!;u_G+MX_g{EoS(9 z1A$<5lvz`KIH~C9_1|563>NSe2zlmq+oH!RizuW)+A2Zi4G;IST(_`e+;fEq`{Z}O zJ`sECmyChlQ2a!wXnz)mAz@ z_Z_g3yn&{{9lRt*+1?yFWT^IvkFVyYdMWD(C*2hHrUR^YO)e3G_6Jy6!g-s|r&`3< zeO+G^fxClhu!AbT{{CZ1PRG@MzkMTn$@}7LNdnbNi%NlnEUyFd?*m5|3qlgP z_qd<{(9Z$8ANKOT8Nv0RFbjyimUCtqE$BWFnhv&wNMRdZ_zoIX^q;J!`uxHShf;idj*ypn(pGka$e_2(%=H8Zf!`s(Sy#(X-Xzt8guy6nE*7X{<6>(wE~aqyr9WRBbcKgnqYSLce3eU|mdT z>}~oeX$-`LK%bRs#=JXyb3$eNboH1=Nf60&$6VpG6%jS7gGi+>K^zCHAP=ck`uPNy%$AvF>I3@Q`qkQ;rB0;nwShL^z* zQbERneY`wTG!Z-^)D+0ik3G0@54NKKW#hK5rP_KnJ+hN@A_5;N?%8i*pQk(7FqCX~ z>v}gq#8x`|r!p5Ewysf51+%ZEQBD={ueVW7l@{xc?0c&mcRLX_mRSWv5FK0+iIn z@jJ&d^hK#w;%9C51)6pg+Ca_E<_^^Cqf&qd1$SrWP-o`5j!p}TGT92JMFV?RFkAb{ zTBYqePSq;jm+|Zjc2eg6uDp|W8qZ{)!vsf^ozWC;Z?Qd8CCjTgP2*`_l)1vuz8K;R z(>za_kw)*lh~$WGG(XlAux*Q{3{Ev`3A1javLc0dt)tg(lY z_u?6|2*vBp*cErl`p?b^f!A|*Rxsb4p7nIu9iNM+v*znv$5}fa=r7X@RDXkaFD%=KFuUHq_FiX>t%Gw{XX{JlO7ZYCNV*682MNRO1#k!^ zR6u9sham*?LX5jzNBhpaS_l2;8?U1~fkT-Z&!L%fX<0YP@V-()Jz9iK4;!l(~)Iz z=9I%O_*}5zHh5E76Jj-26tVfCic*ZRhGj4*l8DQm@^A?5zkV1wkQxg=Y!H14B0s)wwb3N!N^=FOfjjp&%ErLI3{q?8@!f3z z{^3)c+zM@A%xp!5_$HWUQ%8R2jQdF{XalvNcx$MGXv0vyi=zwon)#&Qyk%2i-He54 zV4MFDM~5@`UTR1Vjo`o#TY||SzV87SXa5i1A6^ChB&oMR3NdQED)`j~m!br<^$Jwr z&dI(B3_9+Ki|yDCt8IoRBsR7Yn0woCGl(xYzay&P+b=~e0-IcjpMxaL+_2kH$d5O? z7!?%SEk_L!o0C-npw^lPVqvHqn_7n)@OBGO27P1OLHbf&#W7D`M^HVpz3E6pI9D(R zT<9_yXG5r*z$J;bF)3j`>FZ{t9l&>P%G!$|`figFs0_J1^H*WtAnV@+Art44{A--F z@SEjdJNolY_|fFE7G4SEKzX-*ufzw&XK@5Y5<0r4pn9hsW6i*i#e*P@tQ}SI{q;Ml z#;KdMaRDoa!0$G}!c7`8azTa*#IPoR?}My6!Y%*urj z{cu!?OC@5U;a1prM9#n~4%c4%(-VVQv`8YC&#JW$RS3uPe*}j=|2`RuNyd zg^+dpb?yG?)TYwuircq}!RS1?bCbZezCLc>_(34+Wnr2n@SdDZqQCWfwuWGv*|RF# z6xnANi@xecZ@ucD;4DJBg{SUxwqW_yUt}z#`u)c+zJjKGA8YAizW% znv&$V6eu@0Bv4*XCX-bb*J3?VZuOen{B`ek706@uOU5FPt&lXp-7c`9;P+4d|W7j8Y$!2dL+j{r9!9g;R z-)I%JYYsKs-Ukx8;aLnociR6l9)Qz8V#njzj#lr!EI-4Yw{zz-_OL1lKY-ufW<2l? zz*%<<=t63=_`@mVw`n}18Y|N{VM8{6Sb+M79(FF!RZ9}eOtIy^go&rOy!05n7ET!O z6vPXe!sx(v@7y3ni7TY-53X~A{CSh6vzO1FO}QU^JDLVw67zVHj=XsKj75hTe@1|g zSacU8aRjR~l0Xy8BbUz}_Kx0;Pv8CU%q{O7Yzzk1lVZRr)D?;#Nh@J5OQ>XF8M!bx z`r+zGNSF`>Y8(mqc}~ClGw$vCvN^%+A>(-Oo|IZ$VBV{F;4BsCkRme__gCg z*Krt=FBtUgT(hto%H-m#t*! zKJs1qEXf`5yI-*aDt3|ot(@0rU)8hg^;H>%7JW0so4Wt&Gz-%Ji(!eA7y=K{EQzQ> z9L|76WAhquPo1eSv|@kAi^K|MXQBNPiB~mlm`P5mD*}zva#c`JAW62dz$=7WU{OEX ztu0okSVoTdEwEFcI1>|1i5w5EBNsemgJZaKS9P;nu%0k(r*)(UH$l7hY6y*FTSqa3 zMk=gU0zmp;CIx}X^99}p_e)!f?23yoqR#j>=#4x%QMefOQBq^|7GIh>jPl}xHE$f8 zAn^7#=TXWMVdZ{v{*g1Dzxz%8<40&S)rM$TQ$py6Aux_1VG8AT681|LB&5|~KhWtc zWZ)$LTG)zMe2$LiqaU8pe+N8;*5vI4KMRKo!JVx!kgajarn9a!L604Q`z%hxUvgt{ zKy9EF)}716o>V($OM{%NC)du+@@0#@n}oUkAQc%?9C|?Wupag`U&0cWCK-0TIw-I9 z9#Op}KHYdsu;f%E!H!3V;?cmn<(=6Rzm}0Rf=kuPVTcDTnPpf^XGX08zqYm=wTSOR zV29<^6(p$&Zg-t;zdyW*v*e%>!Da@$4;k@Z6T`cUUu#RTU2=derPd%3<=z6(0lQ0I zBbhsD7vMLXU<7C1v6lvSK|1ef8y)BO%;}9-JFx?xysSVULbTnQN~qE)>c!&h3&|-O z462qc!gAfZDWdL5V0Ojr%WL&Bh)Z#_c49?(UGN-wRqo_a&i=zRbf^RBB)A^1b7MX5 zqpq2xWlvlIt1Uis8_00VCayRZyHdiZ&*cGZG`AH8Fr6TJ!2^yx7`at(M0~E|4d2Bn z4H`_aTn7yGgLf2VVfe!{?`R`|i49V%fy$4z)_Vg!m&shP0zKR}KIEe@-ki~I|79za z#c<9wqjnb^BrlPpF-43bmN@bW{WKU|*4?&GZ?2s(Hqg=cDFG104=1j7!%Aw3{G+W- z2EpE92YXl#8T($iLL!2hA~&>kNTB5FI;nSwGFN&s@G3is@)_=fFf;>6sONAD;Yh$j z2}3!{vn$HtOT+4AVs+XfX*)UznVaAXB(tp*;5wTyl6TtP4IUyMj6Ga_H?f-KnEWDDrx0URAk z(r^q~k!0QBlC~rnI&#vEU+`~zd%bQzL++Dz>}y%#^NQwuBG0^`tecj5vp;%wK2f%r zPVl$CGuv)7`1&oIkDT*KP7U$E@owDc8nQ$arY%M!;s`P&9QNRXv2alQ=swOuA9NJc zL*u*i5#KmbSCN8`)&#WNT92ypmlaNzi5qe7eJgv83>bT(R(@Uxco(NwQR(kuZ>7SV z+Bu?Xtrff-Q+5-@(01Rid=BO2u#~5K_qM#P#q;aMQVA7~fNR zkdDlxAa6`i1_lWv8(p zOy(ugh>EMex#BVSvOG7^US$_Xok4wGNCE+#gsK%q81{oOWY=zJa1|PoG9@ug)SVN zLpDgWzqL0kmhJSv@i=-Nd9lBeEPl;BcP0c+ldd2(0qml`jo-g>k}PCHHiNcBZFACf z8O_%!RF_dH|9k(U6sm~Ki7OaPu|fvep5A2?0w4w4o)mCLT(~|MOh3g*@SiwJ z-S9XJuCcJDZL@IwrQ@nkk^g5ja`{?g$o_g3SdHGWiFL0X*yR#@SOK`bAqw530 z)`&I>#lR(3T*9XD9Wy;~lO&#!LK|G)4BBnTh87PXg6f#tuitCh+|Xy zy+Rz@%A#=*I-9dW77}@_7RW;S$Um-Lj>+I?!3=^g%yT4-t@YXZh{lVUi?z99n&Hq| zfH+E_I^)h!e>o5fckSZ4@}1&H^aXBBlY1$Uon!r<`@m0cEMgw<`Nl1jWy^b_7N+YO zD=M|Q*n0$|ISU?`|As}^=}rGmMWK65YeLy|$SocolI`3p9*0?43fa|~148&^kX#?S z@1x5ki>T;z&%{@M!jv~*lN3im10|)o#WL)p4P!|4-Z;vkm^tu~l=7NX_%#TvLsS_6 z5JP;Dir|;kq~a*xD}cv#BamtVapA>LRO$}Yxd9ofmDgeU?E||Gc$&#43zAff;m ztL=Qjmud`S09z+60sl-QIQ*fskdhx@m3uyf1m|R-3(>8!gnD0d!x;|V-o6~~%V%2I z<-TRBrFUpo&X=1UeKhT)NzVB-V?1VZ{+PtsY?W;2YZ!oXqJ>P6)FBTs#jDitX^HA@ z{(tt~bv<(9NECb(3^lXO-XV+KE!kshEc#GnQ{oK!a+;Jiv;O>zKop9E8wHdBRI_Qh z_Z{}fzTiH|#w8PXR3%WjRaN?&QIjB$mx##7xQA_iLWR<$lyG~#h@LWI0mhT?mt?;B zxJ!Mzl{mY)_x!*9om7Vu~7#)kY zz_z?Tg$+ac^_ryXv!-*Kl0$*Y7U{{R>lB{M(uUG`<1PiUZ-S;H)do#s8aKpF~`>p8~GH~%116LMm3UQjXM)bDo$}| zK;VwIz;YB<_)j7st}SM8p9o?B6@X?LRz z5c}XqFTdV|GhWyjmL0PAc3^u}@U(y}9x$)_@b32b<=2}PvAF?`lJALYdy_}!qqDH5 zjydsz`xE@_1ZI2r^}*@-cS^e9HmYT_mZ4NamvG+H$RYzzNLYTP0c+Y3Z>vVBP~9YK zNNi14aYN>GXIdX0O;i*uf4%_5a_6{C^fa8OeC@HVMhlZOz0gci;xvWuM4k&i0mqb! zgVmI3*%{N)m>A(th#uCM`^7bi~@mPxw#YsgO$?yOt-bDp+JGm;dcQ|4LmXzkD%HPW~*)Ccj5{ z%Z}{eFV){&iSQBmb^c9y{%!m|4sZPVY<}keMZOPwcpN?bCBKUXAt&o7Z8f5XyExVm zP_K8!8W_cYZuzE2$hnuBLUFp$T@)K)Pv>*4gV5IAqHFdw?h7<D`p&@p0XkOxYW&s8JQnu*4MxP-ETKRqQo2(xIt6`2&cY>O>QjM zpRgf{iHyS=xbl6JuSElPgalX6Ha^&)zYG8uS8Wo1)^jn zs?}JPlN&$XUj8nrUNu%z!y4@B?2_hU4yISX#=zfA#GH4cUWMrjHulNRRIDh}u~-ED zbcuHx#~ib0)W==Edb`P=Tk#jhVS5AwKXC3HVDC8?OzXmco)2CBYz-W@R%2PSuTg6( zxb}@s@%qv;+3rS`4>D`E5Y1ev%~&hPxcUS)HYLRSq2QqTGK}yT!=C8U%&9PI*T_F) z|NcGNM(JE&hldQeSOCpL&3hR1T|%-N1+QIYOWf707DQKLozs7@iZ)>Eh~deljq6?D zW8kej$X2(JqrwjuZnl5%tSfguoLOi!LVC3dt%i{NYhyVQDTV7$aM}@$TO*vQJRXd0 z_=T+NB5Ji@k#^B`AV2t6qsmspUgzJm!uU#M7eyF;Pfje#xk2h(f5LN#U?-;`#`{ zLq(u%x%8L)tq35@`J&msl|p4;|7}UNs+^hOM9)Iepd|<+MVyU-ZI;9NY|%#pUDhWB z4@Ci8@>nO*opi4^?WEfr``xP*l@$#M-x=UZZzzh!t+L}|AyOlyMOl-tIh`gmbAc+) zM%simtJ>$AVRbx|=m+<*GTTjrt$tWe1ipkfxamD5AW6W-jLV;?ue4vvR-on4_zE^4 zn&I6HZJ=mu2-#++rdYae_E!XKGyR8|*bb{f_Ggf{WU;a=k4OE)4?Y_3qp8mAd$Lrm zLRBlWZC7T|b!*>VgYUYXt+4yn*xU$iiG-i2T-0W8Z`Zk021Ue}!9GGr^0N#WJ0j%NmLEUw;qJS~| z*PH8O%-DAwQ>oDN#`s^o(cv6;YY@<@2X76G;y-uQITVOubd5tdq^livy|Imujfc*B zo}|-n&Zxr4Iq(L5=}q}}<g7eMLj!=V)sY;Q3Lr^_rz2R!0L=; z6gDUx*Wm|w39WfKDW1G#CsARG`O=&lmE`Q6&G{n{(F>>z!Nr zqTeHX>oZuCxhNnRm>_nFvI1uz30;nA@UV*5PprwAuMJ+3agof?%B>!LI``e>Ts0v1 z3~q9KT^1ibzxh)a_>imW@4}AZ(5igDdSAJEx0zS@UsXob|JLbwn$>tzo)))&h3z_X zC$fV#>U!~wh~Wukl&R!$Q#n}sty!yLMah zweNBLaB1*XGZ|u1PNLFq%7r!r8`k)7FGD!h377OL1$Dpc|A ziKRFCdptqwWfy4|H4R3zNKs)xTt1ZQ76^wD+#$!Y8p@iGvb-Xb1y zQ}SwG`aXh(e-}wyAtrD|GUM=p{$$*rM6u zm*U0^t-IYOU)nj@pm}LJk`VGVEROjh{Nsq)5V;A(6-XtQcty`tq@WG~R(Ugy-eC~0 zvDj59i=4jkmc^wy-dQlx`NPFz*BL< zz(5si={L*!;8~29V&j5?Q#1jflEL#Fk7~aAR(Pir23?>j`0kYG`8e_wNRXFx1&jQA zaB3}s0M7(GL~+&rtUQ2dd4V6|-Wm{Ql|q9*F;&*OC-{@JzQ;62CkSu09xjgD%7uHO z{N>Pl7ny zsh=w(&J{|BISG1hmq+G-KTM?Z_F!hLmwQ{jbKslJ+~)Cz-FeJ~D&5GzgzHP|(j7Tw zQcIkixvt_eNrOfon7X5H!?nHjqX%_r;q`g^O%H%m_r&qad@Nq`_~3_ewe^Mb*XIBUGH){Vv4ZMPBtL_S#Q!i-e`QIo1j0$Tx?TDdb9 z=tP`jV_)NueQE$DEV@MHJ7WmMFv6*1AI|Q;(Jnlw1pQB*(@jbdRid}4vb-5uj*}`g zxgGGiV#g*GUlwMl`Y@6JF})1Y0O#W(+YG^^y@l|mPG!WcPf2^D0a(eU)pEcGF1bm> zM-#cA=U9pqv^or?NNp^}eDi>cm}r4&K)aba_e+j=X`VMkMA-$a7rVwDCV?G>6u;G| z0}dU$g{(3Xit*^N{W%Iu*#{?cMoE+zD@@qxMXc=I-Cu31v3!t#g%2zPg;<$S0}GD! z>zA>DLa_BWQ>*CRiZ-848*EEL5$$`6c-*AIcjBo&H2K<9EiBkOfL?#5t<;9jwG)!w z8kfCgPaO)UJR--sR0oHyLlVb^Vqn}@LHEY|{K2-C)VcE-V|i5Foc^ORGXp7^BEis7 zLpxycCopC{W=}}A58wkG(Zg%;&Yoem_nm2x%fz3}Iu+l>9`KV|>NxWu3v$A6K{F=a z4Mb>gQkL^{98Hay6g%Z?OJS#nfUzDB&@_sS`A>hLWGTS6 z13Z|(^|3)vFvC0VePD>T;Q%$|#W9(vwcC_qZDur1TIme?1*xki*8Wqp9CRG2&@4nK&i z1ESWK9oO-Ug&iCx-&m&gkawDAf1|!=&Mdu%sc(ngGZcb8*(E{`ECb%~!e?>yy;w9U z6_Xm3Ev(Sxs_COl$~y;)BR5%~Wd{Z0iwsXxd zJ{fJuYvmNphM0B&&?Wq4XcTUxu=s6e)OGCPCa1F#i)mF=&j5|f>kEralfv{hqrT93 zJ12iOTpVGs{Y+g1ORd18*5$4tKQw;!fwVxf%J=u;X5KJ);7s#8c-7>anfciEZGJKx z7td}V1XX63OSf#w8;3H4MjgE9Bb7@OIWz<7199|&(;K#g$GVLyw2YE2zD=rd8hD$V z{<384x<2|18W6TBCI5-?e?>>Y#C}uOQ>lEViUvy1FpijN;W9%|##7nT*o(zSswYzJ z->@9mODYT^Eyt&sH6gJ+*zUrZJ03xTN>y1Ld13sSy?mzom!UFwdUqG-w4K)22|oMk zO584AU17M44+>9W)%>cKfwPIX%?abMsV11PvR0p4O8-qgY9VY~8CK+=tLx0GxBrG~ z*I1O0*ajSp(|0{;zjYU0(e1ovdb{rL9k{Q8Uw(Pn%ql7e08L($qPec6jY{1sT`Ad zfYww726WD5D#Z<0<*uWw#HRX$r7FwuHU^xf&5uF~l#)jm5_L1P#X3uCh4F&bz3c+E zz+%xXh@x)d?Hi~u|eB%JOp*Oi%*eWXR^A=*M>q=+)W zUz!}=(gnUZgHX9F8@(K6Jv&{bxTKdhIh#(ev67pqP?qT2cU{}!EDwrha;yo)(*Bwn zzN)e77v)~-(`hB%Q-kxGvyVl8@qA??){`4rb9kQbmoueqgJP&8Su4vxJW*pzX3^9rMvkWhq7#J&q zK?oS>fcF`O-~98hE-vr$+@%$L$6Zd z+kRwV4??8F0=7VRL_R5N)oZg$3)Y7p7M6L4D@ zJ07n>W~X(aNTspXn+BC3l`cz~7I)Xb3#jpC>3QaimnPL9WiHT3(t;~@9lYAjT51cZ z{lc^`MB|Jl*cnS$sp2E>_rh(md1cWIUf%@{+%2ZdNm@#%lAmxMrYMkt)+h(P7rxAV z7E4x8<~G_ujfGbh2*oRLXe<1xJzj;E&S!gCW2;xZ!8uDw#tc9IqjBivu>%(k-eL;X zk~Z2v-Q~;9IJ9oY52uk~->x-vjw&I?Arqs2X;RW9o!vsj2o zbMqreDvNY2gbvJdnT>C6e*UT(P&K!`f#{pca8GjELmFp;6u0I{>}NGDTPC(v)V>V3 zxuS0~35~yHYT~A;4A;=-GvSctko`u=^CEZxQ&v4TRk~CklSJ|CCuz+9Xp@pPKZAxC ziER>eRHDAzxNw~-U_}Q2nW`ACJaM5wOOCe?QWWF0NC5_* zR*;A|8`a|Ns*FRQb+m|& zY~asH5?KLXq@C}G6QD$w+CuC9h!8ds4?+40tL+(x3Y%?#8C(`uHu=Boz`rn+(;i~w zb&7YEuvpHVAdFH)8!Q(5yIS)9%yP#=aqYJcsnVsiTwyj+DXY_LrSsYgOf5?|o=KGQ zo(v*H>~NFu54Ctlq*va#Q=}l^we1Wk>?UTS*JyV+DowKM!9mh=4Q2r9Pa{2RLG)a|wI?Dj?;PlKhazIVeq+IkYS|Fn> z1N&Hrtd_js$!eDhj~J4i7b*IUX_>ndzZz6NPXc`kh>6bV_su4rG>So!pulZ~? zTXO6$?QOX~nqlJPZK+s)+S?l!$47rZTOORS+b#VR+5zq9GBE4)+U07ExcFI+Dybo= z!4i*~I@2_A`q{(VCB9yFCmwx;2(mxRt)zEXW=vj&`8u}L8u^fW%!;rle58`r+>GHh zqDHd70iO%(H1&10MywTV2j_TwzimKb$Z10-vPE$XoTt-;zM`EhyF6K&~oQuN@GUjH{p!_qeCvBiy@l?neVZ`FEl3+Gx-An1#QZ zydas*;gaH1zGCiw;ttOyoO6`l;h76Eo;}&9<4YPw^~~92Sgd6_?h4gudrh;QBS|k;IX$o0)Res_R?I56@Bb0}C8V3XBGY2?l!Bj{FoEgQooj^dRAkw`3bE(AtNFl-S+DZfx2 zNIzi-C()IIUp|~nCeJ1CK=?+5!VOb`xr}q~nyzYlvwp}@6qVKy?yT;Vq1tKE=MT2^ zF~oCAe8>)tS-(!@MIZhwLI{&;*=>etXE;-%EN^mm#`&<+n>OBuh)YWCrz;=UIXP9| z1wSp&^_uJ?E;pEMgfN&3qzTA!{#Usrs-`Zu0FIb!`XU({t9LfB62hRC%|Jak<$se% zh2s=`Ci^(zE+l*ji57%LBp{W#l~m#qN_-pdlN%tZvQG&)(+qozXG9UjG8ZI_lq|zI zBvyv^#q)LDyqd(ZthfrwTsJk+3$!Z2eblZO`brvfKtQY&XC!GJXKkywO>s}{#~q}1oh-Wn4|K(% zlGad-942p5)P)!r~YmbNK^Ka@@U_t4ZPh`g%~a+$_bBKg&-#q)k&E9X7csq z<;&sZITf;u2~p_|-7jjbOLdwRc0qIdEw^nM4Q{o}ho(?8A2=RorOGB?^Etr#EPV2; z^k3`JVOg)1WaQkYWW7qK?7RHCcTa{HMW*$@J%ZCIL?({?5Kv?k*)rtnn;Zl)4+6$( z^&A_ac@=ax5tQ}}o6ODG5;ZhV*v$7-jhlgTag4gGsH!J$YFN7q`^k+RCGjrOzMZPB zn2Lsp`M4K-{Yv#*++?GgI3!CNo7wnAooyQsYM6@Cxy{a?!nl^XAg!x(loF>~;VYSd zC8S8|d%bS9rnul>4*adWL)EI^n&D+?N2cRqDL5F+{v>U`_$OYBag{2U5;vStt*e`c zxRnoDQffGyj~`P0C<)+E{v;hm(;iYUxQ|!fg)1?Prcvy>^lR3;r0fm45e1IcnCUB4 z(X1`Z+@As}u=tVjopI(qnor@8F*DH@@}2P($S62sV=?@78TrNqNCehqnVzEf*)K0u z!IG+cpM0LK^@t2Kj+&#D*bYi^0%8rir zU;Db?L#(# zYF*JGFOv;Xxt1Enk| z4oOL_|9BiMJ*ra5HkG_5`VFSAhiD*q@|VxxAB^;!`Yh#Avsvu?=KG6ghLZvVsVUG? z-ht@>%M7!;qVkX$N!he^)3e0}CjW!N@(159dhp6?EXBTll)ILmgLPKIVrBdWz%5yu zg_UVAe1fZZ%1c<)IsFciDQQ5Sv~Qb&?FfHpJ^lbAbvii>zoyNX{H;o&$ny;2B# z_!%AlQN~-#mHhC!!b*NeLM-Cmo9W3*nlUCDM-EW6b@Yq}ToS1big;a^JX10C{K53@ z?WrojvB*xy@er;Eh%1#OO6TG%GMcazVqdeh4>p!&?{jbW$eaT)ZM$(ta?-D?hJ^q^ z)DA5X86TI-hmqe9zY4lY_)iwydGP|tuRAJTkl9Hmo!~p(D?QKXFtp%w$N0^10OM1^ zV#nEHapBKRr&h#%T5KuqT;5EROArE32MQ-w$uvq5OoRR0J_P<_Y@TiuLA@gPEH>VT z7)rl%rzq`5IHflMT@8EIg#KzaLZ&G z#G@11NB9+~bod!i5|3ITaeV(2UzsTYm_nT6!9n)mew$B*X+Z?fPHA!CYD(s^#ENppP^6N5OuB+->;yldFn4EK zA0N$N8YX?|oG9NUXCs1ZLG&#m<3DYC@h3BIh>yJ!vP#S37muGp$4A&ah8AYZ#S57w zw^LyQ65}7U#iko3n-!%RKp}l|NZ~EB#ffn?!vqF+JBqc%Sg1E$H#@lf*$L@A*04b= zbX=D$F~>;;!Vwqt#a07dm1KjgyNCn5ho~OitcIvKhW?Q^zjSvDI`d@oYWz=DMG7U@c#z|(YGwxrs`>#7og zabp>H$#6V-E;kzPZEWEjF*hqNM^@1QV2BqQm!uUkb=a2Dmhw;nRkp=-Fd#$)R>&#iG(G-bG z*Y{xz6-tr`e++d*3rObX)ucj^k;-dKYcuk+f z0B;F^Q!>oBwhn3UyT|zOa5Z5!OMlSEDE5^`qt#EWF}sn?Sx<)XC!;Zy2Iw2t7F~sK z0`?lKN#vQ6!s_&q3{-yQ4dmUlxj+a3CFP1yu~Jg#I(+Td1`BDWVV(?531fjmBIKQs zZ}2qISRyJ?g+=Hh@lHfaHv>O$gqcV>D-BO_N-h3=pQ7`SRolIAr7b!uc(KjI^pqzD znXVifD;kXv-Q zNH2bG#Kj$ce@X^a+@0)LwQovj4j?esojly-Vm8t93$jtm|&zNh~r0Q}{`1 zO{ud3r_FS~8~~359U@{jQ-7ek>$JNsT8z$^%j!7Sp<5Ep=HZq}t!2aU4V0-mtrP$H z6qtMR=m5P=hezZV0U+K`I~h(O{m$VOnzPWy`W*4})Yz;|GQpgU_e;_r5UA7fI=D%; z#t;E7`iQ6RL$Fg_fu5k0BTqZv|IT(MfE#8idPoqobenZ%Ct=? z`f^V4rATFRU}<&e;KdD1D_@;@-L+7*qZRRuH}Q1VKPhuP<;11qkgrV&-TYJgOmyc2 z6M{fh0f*Xyx;_^J#?&@PmOPE_^V%ubUBu}y)$Ild1(Mw1(NUy+#-NT;NICx4wp9I9 zqlE$y^jE&1n5RaGfi0gN*1?M8&hF&f0YNE3BaQY2%7xt&?bJ!~pEnC7#qShCOuH$+ zEe=eEWneese>*F{l8e<8J{IWoa~p%7aspo9DAOXv8Y<7hu>siwt7nrO$O0eG$R2^i zpjHC3QZfY~4bX?xYs?pnU5P#QzL|-riSX3o?ZqR~V7Jx@E>G55YOI~IXa=QWwWx){ zz#&l?wNj<{1Df84jQ$nsxa;21Jl=L9zt?Y7efeW3gCc%1f3F{nOL(^P&_VC2iPe`` z1^GwRH<1{fFx(hFO+gALR&{sCYN!#)EsT(L58J8pyFp3eBe0U>F%_VIbT%E+7v4PbL4$A=EgA%pdMa;(VIP zn2CjcDhWE%L)J0CYZgkTTW-bb7Mf&N$fIZz1*-6q*%YB)Bltb$@%yz`D+fS+vvAVe za;S+7voByIp?Z?R-K@so7K=T7P!aJ?7Rpo^mA%f78X3SEO{@KU_~DY~kZ%xw8Tx%l zrpfnR?DltmuVlVMN_Z!Sh5;3v*DfWtjG>T+)WoI#dCw@n)*r3k>2)CH#J5Y zx?l?K4W3{7ya5)@l=csS@3lma6B@iQci(F@l=z0%&nX#u>N4#&w+=V69EHwT26;XH zTK>$$F;#fCcC*=_!C|wJo}xQ2S2i&~zX1 zG}*($xlS;3C1IJAZJMXC6>uh3PgH@$+)gaCGmmfD*$^5l8TUzge;jJ+X2H!fMez2p zXM``_GQ3jt!+WbY1(M*d?c6tVC3LpEn>?oXbpQCY`955{=J9%_$o%*k?CyB`9DqT~ zz9)8)msU_3P0mbBHxA+_(q)oA(3SS0KBL6@x)aik>fUd$Ywi#+(!(4(btyTImOMFL z9fcHbI~X60=z|L0vVkoM>ODV(q|wj{kh2`bAOp73P>uDRZq^-h~+#(9Ms0xq=> zB~gU`Rxf7eRC{J;$oLFd)&2H_77PzZosI{ZbVFCHtN=QKMa#^1!m;n3WY?+8i!2QU zOb%8dE-L6QOnJ>S_(nTFGnEHs+`O18&&v)UJ1sOUv{S4I@;<`gSgAF@lVYc3%|d#8 z8qSsMLHmoF7C>wjghIUCbxM?sEhMyzm-_iOcGmkMmS4d0NkVViW1*j~rxX`NIonPL z?6NQ4CHDB6&-2g43`^3Z{QP#HNQal95{uAE#d|L%GSIxt*>favZs&nu3wK6YbUyuM#^QQ_N6Y$tK7oMx%Dlf+EK9?J*mM9Tyv^~o@q z5N#BzP%+KZ9u2;>>RfwOE zbN1xHKW9EfLp|6aoJ7J7lNbX6zdblWa0Yj~)<^JlP$6U1ZAxQx4oj-T^XgI$Fe}klHCBezz@ggM1fj!U}8)5%Ewb^?Pe! zv%1>?dG$x#y{JT!%%=X)lF2m0rWVji?Y{@`g7e@FncTZ*9v7s^BZLwh)Z6*l=vaR$ zwZnWM1olS)+!}dDXxH*)aaEh(fziK>Pp1C9dCvG!q;?9QeW*`(P+$cK1NDjk5${D| zfyQbO^TOU0rAS!c%fT8SY)O!gx1Zu*1lmLtZdHO%(N{c%H(r(-O_wmEU5u583gcvn zz!Xn*4^PY}H$^Q}Q=Il+2rW^lFY!}Vq>GzK7c(PWj1`ND;9<$Y43%0m@6T&ZJd*#k zFO`ccHkR*aDBbpELZzIM6lW?$Ncg!TK;d~)&xP5k<3KT4I3$^!E(JSKMEh~L={mw! zPcd2a-%Eo<08|e1IM6tzJcX|dC6J0tWq#<3whV*mGG;u5nDD%)Zwr=XD4yG3MMf^l zb?L&}Me&QRpf+Y42e=Z5!w>U1qi35vvk>+V?)foW;>z$Mm?SO(Pe~QVhEb)4k0rm_ zmRWpN=7&PXm16=7g{u=TkXqr?>(qt7q(QW_>e`3~xe5cLN|0@WCEFnjaKL#lIt-m4 ziHDu)Lcl(rvJ(g-l$ZM+N34q53?H4-j)sIb+W(YriBtC{S19KaX^|?XRBT=G`(NVB z?aJ)q@0~8;(n;-=5%YMCntP$a+NwH^p8aM2N-}s1h zN}UG|O4Al(p|aZhe; zF>|)Lcym6f>|_a;zGD9%vc=EBCYt~LP(4woFXepk&hC9y5|#CtRFXkKcniQG076HD z16W`@?E$C&ocq&OP)1%Hey$`DSq8$b;sy)2_Pd&QJb)W2nH7**W6|joF&YMM`ST=@ zm644>!TTlcG?yiqYvM`#?1cbHX)gW|qkAM%~{ib** zACk9EfjR;e^GoZb-4?z_)%L~`xYodv>DB%2j>He@YOM7&kf~SImZ=BH7jp(BOV{;i z&DeC_YLv;!b?&Jl`gI4AL;LM=W3xXnY9!+3#%h;%$;QNx=?^1ymb5qioD)Xqk)RFjr9cXTi!IjVyAMNQXDI%IVuNbmjuvgzvu?<_s#5x)L2L z7HKoFE4G%^N|c(IcV37p(@_*QiukC)uD+;mA@)SMS^m(N)t!-cl?iptn!7659p`g$c%W)3MZtP?Uami~ ziW)9P?{<6LJY(6{8=R0w&LdIbI4CY2k>hqwG?yQ+7)mPPP>6>pMy)C=XiZ2(3lIN^ zB*L%2;lHZ6RfKX~zIvoYTt#|nQi`K$6<~QeUA60OBo$MN$L2{EzkizrH9EmEga_hx zk1Uu&i-#*%^K%Hm;oyQU7;AdR_Q6-G2P<7i7A2Y8)WKi8q2D~@qYSjR@l%|XZSC|^ zT*!7q_EW6<<1N?~LUYGFPk|+XpVSvr23*=i>PsS}ya^)TIKrk5TR?f`sYqrr4OCiI zn_J!N)xHG=S+K_N(G36Pop0$3gA-)uu3u>IgN{9zpYrOQ)Da9*P(~zl%2&ql9@ZAo zI68a69%=^?*eEc9!x}3Nc)ixDEkx+ix79>xPU2Dm#>>rh)x1PpDjwetE^nsI+m-|4 z6>#x~Pc+6)@r{4ZPm#;kS{vLC&k zMeyipNMSa37(sRs_d?_#aD_01DZ7CoP_cBQg0slnLSKzBa8XKDDWfBQv7{`%Gv@r^ zLQQiK%Jam+`n#(24}ZCH6c8sLUw0f^dvI(YyBEU(Lx@VF@4@W250`|l0GR4xe6eHT zVk(a4Cg|?L|M?0I%dpVj?b5B9FrHh_P6K5wo>#d)I~&Kv!Xi(RbZi&6lDQjCXCb&t z=!rnTU|5#Qi{ezZT#KC}#n`az@1XkZ$vUz{lEw|~koq9{HQkaqi0tN}DizSrQ4h+n zajl)T$_=}A1L}?7?+6^kO(T$#WIr|W%9L#7(T!{AFUc@^PDmDuq}Qe_OJ#=F`<&b! zs1}VtcyHh3h1SEV4Nmum1*$Z9`3fM5LaSrl^YKza4cAi z(d1ov+1)5{AUUFa8=N6K`-jv^b+zBO%0mrhR5z4^8V_O?Z;nldH`mh1lfvv@RH-Jf zhtV2yZQ{H_(N7tc#C61f{D~$F_kkp0rb$F%Qt45Nn{i;s%z8K*0)w>NjkaGB(vEyG zQmjRZvAYIj8KhaKafAEEbROMS%b5Neeix@DHe*fzzRF~0CndwqMt6g4^OOwhR~Ts; z4nbNS!Abb_r@PACjo0;il~ogpYOb^`cAR-|@M=tm@w!dN- zoWH!Om%`B&+68X2q#dTrAf*^`-S)EzhA}|b=?Irpf1?xeS%}V(5S(I@a@FFDg)(aL z5aJ4qg*zGZsp#I?w0O&pgwoNh`XYt|;?hwbC&RtpC&_&brT^02s|TD%DxImS96q z;QX>V1xpQYD=^y5qva-mDuUOgo{}@(Zq^XGzgDXp8JL{i$_AcPcNR*ju5_cZ zln;4>8(Ii?!cy|;Q#j1s$`1Zsg!Q*`3C6$yN6Y4{H8O^*+U|3fx;r20lMqi~GeeU9 zj6OrBoTHa#b~O}IoXKDB-hzc_g^Ux6;UAi|-jzon?}DZVMdXuEU{lqL6}s6FRujmD zYP~bBjX%VY3Zv2sn3>SoyOr;Mz#147ekQK}2TZy~#*tOue=hPrV37X{mZ?*&*2{yi zmP%o6qt=TeYt($&$ll*%v|N-sXJLPN)Poss0vl2CrC?FNGUt}8#Z;1uWWmzaOi-=t z=k^>AT*^nI-m-}>Yc>H=XtYkCV9tWJf=7r&!(xU?Z^&6`4EQc!m|sXb2^1_G;K~>!)wT@|IgH{ET~O_ zJ%vmNOa7ydOxE((p0AnJ)c;J4f-wu;3LYaC1GgC~y=hy;5zxDU(LM>;BuKDS(xT@7 zg4LMSrNdspr$wb^Jtf0_Sb}LcbJYEiJRJFlWc0;9Bn|!{>0tOnk|W_Ck`9LdkQDh3 z$+?mrk`4by^5?sMk&LeR7s<)Ef0N{>`!`9Ef0H~K`8P@I{~t-Bf0O(H`xnXRf0O(H z`xnU{u>T|30SCl;!YYf23x-U-)B0FsbxKOWo`d%Z`5*uP3bj$9hP) zQE7S1ROqa3|L8ie9sw!Q7^I(c#$5RSq(-bh`7f!7{y(XS*Zb!tn6c2Ukcnflh?yDF z+wxZ)f&M>T2TPSLX6k02SPuN-^PaHAbfo_UV{cWi|F5nWw(9&Pm>4&$?=8&2t;VY- zdkU97)=+y`h_^A(l|GM`k8TRQ^}srVO4#Kgy2 z|FPkZGycbhGe0&2dkUKvlK79-bjmUQ>x`e_{$oS3|Fxl|cct;q+?WuNl21bXW5b`} z{*MiNer$;Hzr+1`9{kuauR$&$(HIQ)XCT@&GJ&kd;d2$bD?eaAb2B9@`Ol;0$A&+i z|HpW8j-iT9`u#hI0hW zRpEVQ+mlGTr>S3Qek*7mz&j5p#_Wrd-iwi^ZrE!U*xfOC zx!OWSp#Bb@kE#S;e>0USZ{gSNAKVM-v2b1GgW@Pc0+q;6jbi)Q6^tg)gemxXIi2Nesvh{Mn zR0gh7PaOFhFV8_prdt#^r?k4LG`=QyV>XiXtI;fQ6X*$H9q4|*6u{ut0!s5TxtgpN z?$I8m*}khOf-Z4RBIrm#T=+dKnSdo5SCmi${;ruVvK!BG8VqB`h7G5Vdp4Jqbx@o( zB`auc4CadjGNsyHFiz6~bz!K`6A1)zI>t8)m|wJO917!s4V78Fclvxfxw9v19Nt5H*y?C%V2_ebyw8GS;q^J+*XlJmcI{=Uu zImL7(;_S|Er)aukJ}KAMd5jVxCr#H*9ng+d#F3ss<#rZ^6A1Mu%8#ENx8)Mg9V;rO zmU6Z%QKy-6JoThY?V4hQn;|y>OPHF`Y6`pz3~@tAi}A~9PGxlo;n8L>47l;3^B}`v z>QZ_$4xo!@U>!#u)e^Ex%I~6##x#aLHYZ&lBS1XKuu@)TkE*X}k6$XEI_v?j>2fo= zmQE}>Ls9&E1Z#%<&}j#pcpED9;GqopY-6`fq}Z;yuEk-$O)?OBa8a)HLAgf(9liN=nE@NDNImr#nQEUd|Ch1RTI46W)J1!TbPkim8qwuH5ovYXQYe7@ zQsEx-03UBq@25hJ)O}H+28^*4eei+Q9=P2jqL&P9RM$X|Yly)Nr`T!fZ5Y^Z>(rrz zth5?z3X=XgF@2K|?1OfO47?h3f2N-bgjF5}&y4xwWptAE*kyaxF1Mt!a zcr-a8SmDF34%_C$=v{eWAybp7#~*<-zwQU%^q|CGrVOTO)sV*4>>Ej52Eld!D0J;5 z&D8o%?p$W2&3_zl&CjrZkGV2)I6r+HWuVb@_bLTStT-?_VadVzJ5KeHO`8XJ^FRcf zFqW~KM7UT*7_u`J%HK$M--%N*Rubgrs|$`XDta24SVg5JGP?1?`A4h4k2aj7<@nFLT$oSC6O>Rf;x)&W>N5y z`5y8DR5#Q>M^~yfgT{*S$l|K(pcHUfe|;iCh6yP~6RIeF-ZLipTt8ImHff^mi(5=x z3AZX(ok(_Fy6Idv#Dz)91P#tM#C#@I+E%Nx1jdNGzsW+DjLhv=3(Z_h z)R{kQ$)wk-WP(O=1tve7v0kkx689(G$YVAth?MW=YKWIP*N6CR1gu7`AbJ3GQ?6bK zA_hptLV_|DD6}5nqsVx8P5?ocsmZzZfGrDu-$6k7GzARQ$g}nHM?k_-Yrs0omfxpS zaCkENo6t)v^{PBv6xakNNB{tN4`38`#5!2OzJi-K)D{#r7JUdBCa51DgH|gpa9&hR z>WSyI!n`~QvLz-0zQDC6M}Rk$H;fUKpD5%T9w6}EndSrqrP-upC3u{xj3oeAtGYrN zKjt8bt&!K{QxjCQk5hYx*mwQGA(b8gZpUNzW$>stGxX#rzrN+s#~%>stflFv6j?0E z-+WOm;pTz+8L|q=S-O`y8VLxAUZCxhLkTm!Ut;pw51~u>eZs|ytVYmTdYV`p5 z{kU6GiMC#nMq3@ko2tI^)XoYpZKN#^lso7A%;z+WB`{qfBx6QhO|dYceDp3Xre!D3 zS`y+9U6GV%tlR^C{e*%3*6X&W!DM;L)*aP^atpFZ??S+r1lf=GLbt=r0$G$O;>Rq~ zm0Z9nJjvk%Ygf$KKC(ygy%F?)vO0E*-y5ic(pfF56k;G{7SS%U{(C{(z^E}#HuHA1 za{`Ejv*KY5;}>P5#Pp@wx&u!Mu~Bfz4tm=(*GYdsubtbm3w#dCyqLPz2Y_c; z9c!2RBfoN6Fx{Ki4`u&|4<636Z_*xbS{A9}+Ob-=P+U7ma5!ka5mYEO!WY=s|4Ota z*pGebLCEeVBK#oAYatqXKoEF=cz)_Ar>UJ$voKk$EMy(fCY~3N!(50ceNdh)%MIjbWT7c3KYsCN}vWc5fznPki>UV&E9zi&1~LohEYwDu;R zOy{l*5j6>tO(`-w7qO~4pR`?6xK*%H>NF-1yI|<~j01l!&hrPisdNinp+Cvw8kajZ zMK{H4FPpP446mfg&h}mR=zPwKNp9o5N_OSOIiCD0=KW;bgD}DcaFeiI94CkRlKGua z{4_B@b6u~+;G#c>=92!}w*3$%9^W~}j@YsGUbFu)-a-@XOB2R@MNlJpv2?KjA4nM( zKQkx>&M2&c9a*)+K*}~*F5r+IichE0u=G(TQo?!aXbo*-C62NEZuB(ncCN*RXO&9F zxSVbx$b|4AYH}VBv7io=*aE&3Yp@eg+sISGs84^t|CNab|vN;M9F;ENLz%DMlkZQKVEF{X6G|7nR}{()j=r+0&6lV z>0E#3zGuVXm|3L$fjl%{;W}qxNV9hNI<(|$RsxgMR-u}72FGj~Md+o`1t%x(;T3;q1BC>#%;Aq%Gheh;tw!BL5!}B=A5NXB~G;V33A<&~P=b6U*mKJr*mMC?3 z$m7^}mC?gKr#M88Yt(}zz~E<$KR}?R*Et*4YnW+t3dpUS9nO4NQo-X;@$Yw+_yNd4D4}zNa!)cPt`|ZJT51?b8O1$o zb8-I4mY{+O-`SFv_GB*><}2!-D@OB%pRHX(^9A5xH9=65{NYHB>)L{77=-cN+m%(3 zJ=mHyQY;hP?t>A!$fAp83JDL6+IegPsJ?gP8g)1$U2WhXf$A#ksCT5TVw=}~A7jyY z*EJBR=XrLvQTRfXS+5#bmv)b6Ew-z?QU61Uj@D5$Nc`6T;aXg+O3Ym`RYkSSCp=*} zK1FcFjaXa(p!)#T@qd!>UVK7o^eP;|a`$$JzYRqRvNGbm_HrD8Ln&QyKn>T-je{15 zt!Q}rDb*50l-iy`AK&eav9-NZ*&a;6=5JC1uSQx0L>>y5>P&aTX%I(!)}HocjCXS2 zaJ!Hs^Na|?hGhtjiG2MnI0`ae8S6(b-w6|t+%12BwR144;VuC{Q5%2&7Ac5TrLF3F zZyI4MX|@VQuk~eZCyqcLF*7MJ8IZvtC10n_iyKE<`{cwdTei-lqkl(2&Ua33&7h!-bWM6lge>jF{auxs$;ZYC|s ztU!Z3R?a|C?`LKhH8vuSB@l%QL%uy6>^hM&L;~$lj`(paBu);kJ^W>~Q)rJwYNhad z-?^f_-$!ige;$~Jf;lj_L#HM=iY6cjYl zZ0z);T?Y3cozo?~lNk%soG)chnBu%`kN zhKQOWk2J`X6o0tNs*JtE!gitKoqe@OqfCPuEW=LY43`1)2KEZ63agb!ocOk4}Itf_2rTP7d8g!NkVSN&5$;CT8-;2AmMse zVKlA6T}s=I`q{i%;~d01j0_1pyJnloP_hFn3NY1YBrWRgFmt;n zmEfM5s8h^rs`i9RjC-wSxIw2UAA7K}LQLs0V1q__fl4Dar$Hr`s25>d3P192w&w|r zaYRloXZgq8^cM%a0b1aC@jyU!qL}2L6DjS_k3%Dtdv*@1Fqv^mifUdif;AXdP9>^E zmJM{xCnvXWd^K`!c=^uH(c6^V_e2T?OdE2M0c=U|P~f0GWTPz{-()c(%F-mv<6rGH zl8AUUd4(MPA`U)h6Iq6TpDP%l#|F7)V4A@B%3Q~$!WWN!x1pS-i&cO3egu|Oj!Ad zrOng%5bb@b*G4E?GNZETZDjD zq@Yaouek&(>sCzW4ioO4h+(?J_6w7YyN)pw@#AZB4D3!JuGhwiEMbX3=-07zcla zWl{X_zzHjsH(Bg9epBa{ewUmDp=pMn*WYk^4ZQN{XQrw(<|q{HZM+~JUirzv7H5W- zF&dhoc7g!**QIG{2F)f(uN!-V$qihnH~Ov`d6Q%akKB>#*N;7B#SbJWstOCEF-A(w z0vU^HM2#GeVkm=L5cByZa8;52HrJ~{%G7BxV-@?1qgn&uw5bt2V^-S#B_#0fPyj*r zwIS+d6ABn9?d873`+k^(OUMjF9iO$8v43JP?#ICHiu#zk+P-o#k z(W)x{`x2X*t?D%}sTZ0DPc?O1Sp);`P}diE9N0I@=C=lkw6{X6bQRy&3!k*R5|rii zg<@+7-bLuRq0WG7>{G(E*LLGizsQxZ>|S>i_eCJnlW+hnAgMESG4K=u0z{`GTQ{^m zSij(NL&PTku_lk)ezT2XiPj$)3Z8 zVKBboT{!7D)g)+@SKTOf~xt()e`&?xZsZj&3MW&T0 zd-VpUoAw=N0c$kG&zF`Bb{sb7v~oaP&SU$@rIH@2ZYXM3lXY(>ernpZM8|7IwKZ=* zE*heCZ&8lew;(Fr(NR-2&z$ZV@itSwe(YOiQV+kP!EJok3Ycqm`sZ@MDQq+J(Da$ zzC9SQL2LInxOSTs64sf>9tfKOS&C(hyh)^$7MhP;f?(GzYWD;t0d3Ef6WezqLSHo8 zcT)ecg((c{n+1o?QaG^hOX7)o0wbTv~MFm9}O{iW){2PE6WaSPL`v3Bwn(?dDKn%jc*89%U{ z0(t3z~W)*MZ3`#Ay--7Ljpt2sJ;fQn#o-Tydr{IS!j{t~S; zmjse?T3jS=Ias)U#tnZQ?^Ulhnr~kz0aA}bNOuXHi-Kx1og?W{#Oz=VzE#w3%^)T;o6A=quk8yJHvv67 z69oKYYm8E7JP%-OSXXvHXb;jjYf35**~oyA&PZ2AKFz;mRlnrL>{ZI-l7?C>jE`okdl4Z}l!r$nJ>A zaxZ(=sQ3%D05K;jbM6rlctA-zou3k=!|QWu=EUZ_lUjA}q7;dB3r?5{+Ok;veSVL& zKl5P%sugy$%#(6F7P$$j)WF)0ww{6Xxi zxb!$kiAzZeM=b-CKBFMW&3k=uf*_%c`{Dj8ggn%Go@xIlhD-p8Y=4Nxenb*huC7>X8!FKoLcZ=9&Yjf$$GOSX6p`Ip-? zLnUs~-wPWod9y_p2Uu~n9BP})UU8oBBxlh=eWiqFTQkM|11rs}QFj1lRRrbxsLe}8 z@81Ll=BsV4j1%Mr1#tzHp-j71GU^tjNP%$}zTR|Inr(@n_}+9iVbw!`r#WH4KXKel z8P?8q#_}Zkj@J|FGe248oDuLnvUf|E9<;m&KuTBooKXA$EEDUDt>z&K0eb_@DTI+` zkhCznK|RzWtUja%8r?h)>@Y$&OUqMQ`W>iWj&}OyBPPdRAJJ>r5i+N$-z$}43F?Py zOtfEHs~=Q#2NL75YLlokeG?S+x%S3s;`y)sP~TFZZNOCasEw=u zv!mgcx0pq3e__w&W-@9pMQudV{E}_u$al9X58Are7X%rKxofAm92Rz3n1RJdvyHVG zT#`h`1(NsCKUS5JwX?awt{B6i!f+iV3IwP#V1kegvRAycagVai_UaH`P!ahsZ}o;? zUr6~tLi}Ysnb}DPNl)!hX~NfN)kPW6)lNlNT@b8K6$NJjeC$;rRiP|Y7h^P#B0vd< z*>#Q`mfzPY=d!wcKq;xb1$R<*L6MZBp=Y4CY*bGluwsr#`YbzDDJy2pvNmUE1M&zE zfbF3;V+!Rl11Q%aU00_)fypq8s)RmbVkhlGE{;j#J$j7#eg% zt(;5>`+;GcY^>~bD=4W}GVsQ2Pj^jOds#M3lK}BMy5VdZR+ssu3ihR*iGczllWZ9_ z5KJ3{*^hsk z777tm=u38+-c5Ps;8j@13$WkwD1^sWBm){+MfBFImgsCVR{kIvQSO50`g86gV8+)J zlGQddMM@_s2yp}SVxbzhKuZ-2jkcNF7&*(G?T zzWwzH`bOpXr15#XGkV({_v!GAdwmpIE$*oHDPRSI-+gv;Oa3b4cZz{6d?cr-ej8EE6iQP?CuWx+hP?oR! zn=?G=@DM8p+Tf{fbJQVJpV5I8AvkKtRIs$ZYtIXdbAxu>6ryE^32H9tQ!Jh#y|5Qh zNt~x3>a1u4a-##S4Tbgs3+1rbTVoY+C4P|K>I9k9v6F*RFNM3uqW(JOP}#;X-}!-7 zqPLn#l*PwUK@)58KbvD1C_3JoR!cdCashCvTbOh~7D9^>P0WN0{ks6KX2*>)X@7ae zBJUE`#>^0l1+O>M^=_mW0Tdfe>53Gw>(Z9iQj9blJDOUNg36W%4kZABzE9k5V{j@6 zd9_L{P-=Cc@on=kL{LhIYdGoYB84fGV6_1$x8ZXY;`{&w#gfr*Bk+UN+X_}M^1EV` zrx)>Ku~f}4E9W{D)qM4<`LZCg-z9PZkEzQ)HPoqGZtP|9=$F&UlW`)gmTUDp-eGoC zHYru_>RpaKe|p{O#ecJEn!x>YZj9pkSe; z7-V_yx0NNpa$KZr2;NV=g~d4k7Vd`r0vJo7+}PEE%blcEJ&J$@zGch#?yQ`pi)S)x zr3?r`p<^Y&bsL>#C#2X$o#G5F~*=q)YV zQz|pU!olDTGC6TbNFpEhoz&1shp77TInZ)bn+`~FzGn~)pgiI^&R2tEL2l(Ru#8e2 zb6Z?pMo>k`0wsRQ4@p%Wz(TF0Zz{Y!K3i2CrkY|` z*8e>7i3p3k0!_{*rm-V{WF%RZwXxfWVT3axtB54Hio|$p+6o|hvFmTQ$*?ttTxP)h z-a8q9G1?V6^_598*gk-oxgCR3Nw82tS1c|?RO_kzP=M^hf(nnRDU^1R*vUTG)dNF~ zD%VR4XdjVYC>Li;O0~Nq_((}HT}gNkyTxO>-ik+*9&Iw@m?~H7bKjuO6E_5rrH7jw z?@|+MzX;ZvRVWxCa+g3XN#)&@GturK8{1K*MWt1)uS<2oiGZ?5uCa)%+`fH56KW#Y z^LdMIAEvNX8ZCNZ3Gl~3 zWJKg|+OBTNpEKQogI0{rVJ`l(~0MZfct zVx?b{yZTHq;UmCfdwgFxuKE1?SpDYzDM=fO_MVhIPKk^wyyCXRDy0oF9$BtF_iRWo zB~IS=)P3sXtP<5m`4gXlF8D&rN9+@_@jb%sino%DZ5bA}INTXcwT~LnegJHKv6>r_^Jo%WyJaYFsm7E&DKG(ZWmM)ZE0) zppA_Xd>^U{m`NKcd2X;AG=)Haow6$+Fih#GR?;CAGDw#Q>9byO#o8=l^1gX2`le~O zCC(by3K*V+f_5oY-bDPC2hGYX|9AGqMjrwpjV5voxe+Y_gSob8AruyL}1Nf?xP9E*!oQmW@+>a zSa4bX${`7Wl|gr7w1e@oKU{bQt2{W;5-oN z?AB2>fRMxi(Jt{Y75+AJf!|D^xw!3JgKnM`o{SRTrt8pU)BzqN(dm6$V;cOnutF46 z;UV{{ijaJ%`45NbGB?D>C*HtR_Su5_DT$6Fk~$F4G(&-kz4pUGttjodg`Q-T>4{=4 zTJ@ilvSwj6=OjER3rpuG>f!1X^)^sRy z4cGC`{UCWD<`)ADrv9$ZRP~w_m|HE{yJ##ctv?1=v_nMwCQ9fM)_3&xV?EPc<)Nap zL#;${w|_Z96uMj?ZyGoPD1(QAT^`R9F7P049E$vffd*e!V_m?Y1=d-d>E<)FgKx~Wh%)@sIl<<9r=vh0}jMxXmZg{|NVP6C3=9xv}RS7?e67Ek9 z>z=WM196EJXih~Sr5GS3H>2{1XwIwqV3Xx(Fjp8|+7X9ZQVW%|oJRXlmbCJdB*CbA zn;ZI~Sd5W})BxMITJ^v(5zvG7DH7e8l>x^BT6ATQ++71Z5B2ejX8?rkw6u+;*7bES4UIfrw)9{R|Fu3 zs-L*Ks6hKbGDiCjz$JP9@LY`Pj$6mPDHVRM!MT9eh3UNj5;1Et z|G{*^K{VvinsR-0$Xxxsu7!27XogJ(H^_Qrcgvr+T@S2-N)3@t1SOc>7sMgG7Kqk^ zRB2>;a9$$+I1B%{Fb*`kk)%Crc=Pt@cMOTfySa0b;Phv+WpyUoM!*MtM{@5G9J^FOg!>NqyMJwiNW zao{ULD6EGHQ;W#b98>y-9q2UR8({r(WJ`XnvQx!IwPBs$$|edxvcz&>jkxgBccPbQ z6ELsh45@UTWzT{{kL?N}d2@-Uge_(HIXj7um;$A_RAZ9B07|y_|5Dl}*;Ul=p{jhy)vA66Uuxc$eMFUhACk*~nuMv=vj> z7O3CW(3dg#d$iQm0@VKpUO=J0F4f^+`4#sf&2Mz?Z@#;JCHO%E(6)iJ-IC!Jh;((3 z(3>zf4lHyp#;peaRtj)!t5#Zc)1uo>i*C2r;|+_(Vx*mNS*O%D!jm2V8Q3`|0#fbr z{(&sCElW6=CG;Y^WdYTu;P$?1Tkzo0#H~HmaT`$KN)c9vlJty+$hc29f0W!OF}4ng zE|2LYnE8$A!Q-Gvac%DK!k(ExP z-AD6DbmR-{do!52fE@BuF>mdDZx;^5n_arg@S(}pq%%&mI;G-6qSxLG$E4Ub>0ZQ{ z#n!@f_q}`1Z?{~1ai3S=Eu~xBn6p}0$t(6p(H^uVSF%QGZcAAmAmZP zbAOZ$IIJ^8vnlxC5cwE^EnDEa zuv!De%{fZEelTX}p1bP7`6{5aa6G0;QIH}eH3E1#RtZaDa0A=29ctwS>!Esss3hDi z@9*gs`nJ>Kd1*RsGm?5e$LKB76Fo7c{@xmvZ5Y2*Bp0{ZtV>Dx#<_eTGFq4hD4}1d z6u#zlyh+B07uG3=Ye+}*ZuXEIIy0l#taFVlCVDOT5eA9k<&Qz4&yBm~Y=$}*hX1D} zVN_R9F$dZ4wv{=%TKet6j7&*7Jt zUO9=M#SKcLQp$jFgw%}27g-(!=$m~HX)8zmj)=>SEAy@b>Dn+x%83_&V-nKO2uWU>L3qlPh= zEZCH1VipeXT`pJ2raL9TVHZFk9sx5aRg_eD%Sf}LEDgbmXt)bzH_*9O_qD7z*&wsX zc*fKj5A`9}hkT0;`B{pLB?XIY?v7Dkd?2+m~31d#-sB?ofIqUpmA;-=hKvLckJ#g-4W5-xmh z7$6UUuqfu8*Jf}ZBADpVs4S8`NOi~J(EES4bT{ES+h)Cm4H=5G9#bU*L7(m|Jl#Vbn!@LT zuFeEmT}`WSi!_Z$jO)b+@Nt@Qo;+JUuRqw)&2q8u16*hXC+!a7vFg?yx0Ye#&kZvk zfI4o{py=%^1{>7PFU~$bld=_yFCIl8Hd_canxqIO4vGM&hcly#LlxG%LGE`M-}FMn zvkVYg%{%c1QtzfHh7J?z=SvF1AgFE>#XZ!%{~9wozIt!PJ-PNs#&uHUMy9EVt#;Ay zp1CAEr;TD9F839eXeqyx$`xbzJI17;O7v-u=;v$gIWCZ#Z z7<1!@wOjFp1pHbC=%xaBZgV`J|5iK06z8uI3~!3C;4t|*4)m?;JYJwz;4{t9cfXEQ7h3Z(m#uC<4>cz}C0 zL_sJZ5bVw9k+`sO8$vyv;Prtb|OtL*ROtZgT(Jy%G(gHgOK#(rq<5!n{&8YD6q#z-@E00M&>zhj?@%upIExaKo+8FGofJV6aRCTXv3Lv%kXsSUWe) zX~oG@hsnr1&cA2B{IW`#2k!leu7rd~6~=FQ8;1F40@HZ&geh(W@bYa;WGNW?3_m!e z9GNwn`@;!g3zIU-s6$Eomg`9LTxBb#l?Mrrk$%jZTVtNt#1gaeVDouC_vdrp<2TaC zRXw2*dW@Ob;=zifbo2^lv}Z8Mme7u z8ij>I)IGfUPNJ(oSS0ou>nd7(i=QtD~xv5FEq5rCG z|NOzWL~UiqLsJgi$)GnZ?b!U_Ve5=i+fK|BMCDjGaK<|Iach;TXV0yg_V^PQqvcwRLl(gi_nAqb+_M#5w@? ziV3l5JQ_6chE9W>_Q86I02--GkFik!v6v7pUAkJ<7oXGvjd#PE#fm>l3X1^S61Bwti2u^9sPfE(?@GalXA&3&}pMfrd@WS^5KjQ## znmauuS$?g+e01|?{ zg!CYgnVl{4nPV3g$T3*LM2-2m0Fpb`w?3vKRUC|KImUckAV80s8)86;JztdcVJi?s zi9Mn2WtQdGofk~1xG1`)ce!eZ{Z+iI*s$EMFvZi#n>b}X3cYxn3cC>G+`?V%yI5@p z&AgzS*1FL}SZ3LkZt-xuZ?mw@z;^co87%6v7SE}C}$xj#vmnffi%X^d~#A4X=h79_T`4v=v zJn4p4u%5~>-z}qLT+pE8^Ve7oBJ~%G_CnPQjb~Th)cy=#zMFl3%PpzV_$<|p&BWDD z@*siJhKL8eQ-~{?y=NfX5c(;e1n>NlufP8N%isLl?_Zn<;zNde442BW{GEzb9A{N^ z@zC*(&0`Rjrv77i9NNJr2VN?*jnOqF$xyKK$=t!doBk}KCH=_>m!^9YEvJruGPCU| zHU&K4(iGvzs~5ldw^zUWCbLSoEAQ}h96QH;et`~1M>Z~SzH}q!nC}~VnqTcIJG*g- zaWS;hZwojjoXOJ5A-bcm03uq^zBS@Nw{pyVi$Q3#aO3L4c$X){xEvFpmrnlTi7U>{ z{opB&WOmBZFbe<|#^{QI7pY=ac%zCE7qBRUAR+;hzLmqH!sw8zOXziqU~^}3v&&A_Xe@C~p%(1vR*xyB z1P$>Cxn-qSGH;$JOOX;Y7sKY)GvOaWPY5v%i*pmy!P)C&cR}iycy{&)lu;yw_Afas z%X@60?_L%tmewHDapb&tARil|-eH&+j|BE$l-J%T2XrR1;NYblTwy!_<W-tY5ctNry>7enljl;K~lS}K;*<$fLf0RZk=xi$9 zkeO*Cfu#;B=>!Bn!{8gk;1LGt3kWZ30zpMPOjNvDmfo~xn9_09@4A&mHx2?zIaawJ zdn%l2=@kO1`r1z_7_vzuj;x08kS+!u2P)<*@EKx-zXwh}atuL(bR8OZChB+Sn?QF&#!PV-Po1#1I8d~Z7Hk?k(V;KK*T;VjW)5FB^0#?nQ0hgkMIQk-cO zbyke^w*_v6>P;?{%@oJCK83!U5eKT=9IO|LL_4Y(^$bFlLztSdl!(Z2xxj&5Xj+IFX(@*P{R6U zqPYJ(2v^D}Rl!H&4u!GwYJb<~YJUi9TeamQE%zQjNUisG{X+Nr$*i?pd_S|=UZMNJ zp4M3`ydJOhcYV{XFe=npulOXh=3e2;W|=xm<}Xq!?vZ}c5TGivVo4Rb$nzKY|9WK# z$_pi+W>)*VJ`Y(9X8V1f&t6{khIe%y`$LYsUS9S_o;6r&j;mf?_6AFJj+$ns2*uvu zSdWqBc_=QmH)z)4pE=fvNbe1%WMWqCegp4jmf0ITr9D@bc~Z=!MV|=0PfZzUsI-(A zl4=-d1OM?jqmahIBAw{oRV$u+Wi^akzz})|Q+09LP`W^?XX-B8an@h)x4N z*X&%TI|;%HlOJDyUIZN9bhPFauKRmG5f!a~m!9VmYZx3NJvcsrYPFGtnM9Z^m_>@c zB!5*IE3vVZjg|bhl}L(8k`eCzx^`gcWG|S4C%}>Iuq&RdzOVBH%j!EzHz-ZQ_{c0I zqvqzEq(U}ovwxAO-Q8_1d7lX8qzxjjDn zQevIY54tj^Hv9N23D2W@4U?GAv+&&khTc&RyIF28!oMml%s?vHA>jijhQm>QSjya` zvdNL?aoa|5*YbK7cHm0%jz6wFpoeHxdsjW;1qunA-F={Z6%VLc3hSmp<075?*b!v7bKytU$KdQ zwsdP4JsYB|Yy*9Z9;HC+!4+P;_bkzFk=J`;P}1}KIbyz*I!EkRm`--z_gzXOAMAVk zb5l<{uN%3Yz!}b=U=$6iYGcqsX7JEY2KR<}SbWjL`KnV}X1VXuI zzUSuc%i92?t9uWQ(m7}$?E}f7u?^Htxj-B=#?=t?lR1l$%H4!``m@{4i2tB^i;I4#AGJ2XA?>zQ%iz3|3?&FLQfN?G%T?WC@ zuEYGL0()kO&aT*{P%Knb!c9pIG})v@wYPL<0B@Q|&_!Is9-xU*2tq!Is|_dVcUAQT zn8KioQieY$m-o*0T1{p?I2Cc7(yD;2s>lquC)&FH#BFo}PyuNIw;F&-KH_#a8w!wh z8+dmO8@iQV^w%nCqqo(&sVrP{b~CBL7(gEl=xknAL4R`?<@DeSGcqw9AKP}A z-jw=fsA}IN`g4uxJG6jL#aPHaa4_Rv)6J9HH%pYPy*E=#8Qj{mz`S3-Rq-?TjBcoO zq*|&Aq^TZM5-8cuQ8LIMPWbQZ1Ol;#)}?`Rc*&aRY^K^EVqMl&4Hp@!bC3k-5KwA}xm}o82 zT<_`=ChuboUth3xU2zbAd!%j(t#K`b^Z}$pt?JDb3^7>6kmGjee=S{k@0W5GZe4mt zR_wRTCvr{18H#`V@N;Yq5_+C#O(%zXTZlSHj+BCPB7T{n!A_HeV)-Dq;F&1L5ih>k z#TB!aWVLlVZWQ=Pyt2+Xc6RR);LUa~I4t*qOP6e>z*N(GMofo7uj%t z^V~C$PM=C@qS|>FkA*(|*W8!d?69enef7iB4XxRQ5)X}NaEn)wgiFPrB9=>`MF%a{LkljXbi z#rM6f{{Lt1O}OJWu7uIQg3#}csP8nJmYrlWj?D>0N;VU25$QPd<>X}00LVs!2HIFe zb@Ke*-(9K-Ram+UX!N2bXC|T0KrQ#)x^?$UvvpqlI@yNKA+V_6=OP4=h0f4}Lj+)+ zv*)Y#-Z2xgLT-8{qTKOszi!&`0KNK5p1*Y^tw(hB5Ifv{%bGPdtcZIHZD1jIyio+|5u zRb=$#@mF7d`5Rd7F)Y{P24Y8?i435{rgPuz?=3yYLjax`A7bLgY# z&7+p@p$H~dLFCS_pSSNuTzj}1cFB)d>;?hNi=>_8fj5m4xbYVB=ds8HK2H2ONOZ>` zrs#@f{+sh#Lk#Dw@B%uK#GfyzlS<110q^khcs_lP0D6LRLJK`;7{l>XY5Oy{sncWB{uT=2m%@8S7)iHvSO zJB@&S#w2q_3)9#mj6fJUiZ#8F6+aXxg#BE=eM*@q`bD7@UR5oW`a$l-LvD9V^&3#n zLV2|*#g!0saXu-1e|Y~sN3M#Nx5ATICdiflRk95g zz6sn(o+VB5!NoiB7H%iWBnteA`175B-TJzXR!h^=A!)*Cp{+VsKNY8=3XB zDL?Pn`3WPpN>^?OiUJ@ig@0wG!Lw3kzRb9SOX2+G55Q_h@V}Vbi*g+PeG9aV(W&^i z+{`+8>RSTz1&Y8?v^l>z>!A-Kryr&g(I&C)6tVuO!ObqC^{T5wTM5@sSC#5>TWlS&(KpWW)cJ zqi3p;J;;ro+(m|gK^bOcQnd_}H_FMY;itWkN9{h9xmVj=t!@&wL%}zdoQ2x&&qbKB z8EhN)qXF7d?14FpNZKb-%x7@F(#1*k^Iwm@RAsL6_2GTbEod@~wJEcNk(!ZkWb$jx zr4c?ji==Q;5E?Nso_?IUSdgxqO0UL+mPN`urUpnZCtH(wQg*@}BExu|rAc}}b$1yo<3XhR+z#{N>2dGHoLQZd0350mI|IDWp z`_@JUz%AVlDsaip#remF3n_LF;NRteHjWCp;*Sp(^1<4;*vgTRtNqyUAVbR6&0`gI z6?UMBAYV#t#V~2uMt}jHcm+~%oHgt6Eat+kNBEquzxp61wg4slsnWss7w{-AzA+lo1`uyHzUAQHx( zZ;TJ<9k$1gxZH3>U^7RYx}1s~!e~!15;uD)N!Z{Li7H|%#Q=d6hNzZ6G-N6_N2?uY zgvAuog)0u@e+m+W-$ClBii-CQ(`f#e(g*@T`j068eQ6&&{*TA}_fEieyi8W_vk-~s zdF`-}{Y>I~)8}NM)Qjz$6FeOf4;hGZPqiR?#CnMJ=H@A&#vdWF4u~0`bAuAy$aIR2 z@8}@i%5!v3SsYo)*nU$+0#?2m=?lPVj>;rNA{=wb7}JgLoKJ$9f3bS3$Id<0usa9E z#*-l}^^!kSL^`A*d5t*;YtmfT#=6UC?o$r5ZvpUE>(vizHnXX|F6i&oO+05zCAJ|0 zw_F<|GmURt*I4M>0BC;}#v#ZD4XaqmkYy5`Gj^VmGBR1fo&gG6&Q;WbuIModydp=EMzYO^ zSKS49si|}jjqXHipY{avRtF!=a(p6fpn&%Ws_+-YX3T0WE_w6N_<(CqR(7(r;*$zF zsDJ?>z^895D0%h?{r)L(N4dtjp@KQm@ z#@`1qK*bv~nwOH+FCAIHXPoaA=P!#e@~bA%{*0Z5t3+;8D;fxeJ`C(@?X+~7`7x`+ zcy$Z{0x7`-@gPhw{01rI0mvwG*n^i;7HdC`aI78Ix=VE#LOF$Sm=5152L^5qw$$NM zWpA%%7Fg69FE6=Q@&ae8pHUD!CLe5t47N}csj}Hq-!E+^_ldCG9o8ZQS(dP4iA%Ev ze;M^YQ?OQ+KpsJpjh!gW$e7+ZjU-!swcLW^K2XL#dZST&7B;vUn)VWW4@WB@(yzBG z&BQW}HZxWk@b#oGcw&(W?l)~O6B5))5XgPD?9b5_CLmU>*kW-tfvyxb$98Yh%m|>)g#8t)J8!&$I~A&prDT)8DHBZ~yw zcz)qYy_b@aSTu5lhFPR3auJzE28@FUAVKgw$i*fyl{?WnTkh zzGQ-aKRH{Tth~RylY3E(Qno}YcjJ=;k5dE~{XZ((siGhBwJZre9!LmiB8R5ZEEQ@P zHU4@L=U;!drF6k2PCsOtWOc@1QeZEdp_2c}Lp;S6cEVWYiwSJW^pk81E3xpoGwcpK z!zv_fsx@qtOBqLRdpX$ViU0UIWDS9b9b}4s>}a9qTWVZZLFvACE~_l}Lv|mTJK381 zNQoU?#f=TRZ<-ExC#+s2XrE+!9^qw(U9PC28aBDM4=U|k(Fj+%iE>6CzYO1Uf z(k{_%wO~}1Z#L1xMhC#9o8?!Gt*$@-0?egRMn>aP;Ft!Dec1hyv%IFzcoCypLyE&C zQAkVGK1zmk-2a#*@m-KIFS4b6*@K2_qC8NR0T1EIpl?yH3MAz}-rZc=TaCL@aKkn@ zcGcdaa7W@!j&&_7TsSMo+=SlJwDvCd`fVD%gM%`5e$1AJGcE^GT~gW9-qfErWaXE4 zC;!X7-3^)QQB18;of`}P0lQ|qksdwQ4YyCn1-Z{bCu2kU+SEf7WNC`sne?I19hW6Nj|dgL6E zo#8nmHx1yY?1SOtZ^QYYizE-SmczA}2WN?I9S?M!I6u>HP81him|=vfT>oKZKXQLBlOzh<*miqo)4+S1=?A!}#HO5tj9+E)9j~az5r(PMkSFpl z)kKCDVnMxO>_vqioCjVw1G+k(X18-J-OCl4+=!5brgynmda#uMi2-Yh?)DAs2z(G!+_|Acoz@@=z(d2 z#hz=ofY_u3mO0<_Lfe7GN3^Bj$2jze#_qUEMV!P(Zsvud<4s*85{w<51P(Awc&#l` zSQ0}CD`ahAC7Ys@?}Pj{P3BoYh5dW>(ujckk>jz~l)L=m5$J#KZsF{ppH0NXT>)Nd z4_;yd;b{(FndfJC8jAT%T-x{X?dI^mPErmX9Xu=^Pob4MnRC)QS60^YaM7!P-b!?h9e=DbzLC=Wc2LGTHKE)UaEtW74tVTFB3K=L+ zTAa6;`~I{X4_NV)`#zi%GtDrok1T5Ol@NUke0v3DVa(}>A*KS`1sFqlJNKf#*FC6D zMy}rj4Mu1Wyk$_`z=ja8( znmJNXEpU|`c+IHUX`4w>K7w#a&5UFdt zS(Ry0M%mqUDqE=E_!^V>%jP7*`)=^;kd`IB%4BfU5z8f_nIY%GWceb}vg5|(N3wV% zT+g$)mc(PuF;7D*lLa3qzH|6Lft!w;D`2yl}>azYdf zhDZ{1`W8%oJ;e}L{}YU#6glgNcA4HH74zT({}!GAvOVy~7K7mKN>SNz)`Jrc2QH{c z2yI{R(gzpD^QjnREW_?B2F(;-8erh9-h&JHEc80^)ulXC)Oetp%9Isc{Pku3vu=Ja0cfi*(0aJ;BBj(o_M_uGe8G0PVKv-Ul)0qDfLBiiu>vzC^ z$msD}t`Yx}gW4I4Vf*!$ud#q?!^>aRU$4u?_E*4a0l*x6W88WR0ss?gN3B?VMFha+ zY3iSW=3S)~SIk=+9pl35Db{&hZi%S0DmO8Fpz1I;9&q7nMzn*qWt+PoGkE zJ}<*Dw}0Keb}^!DffaJ7*sEmab{a(+)b-qWnfI;C6K>Y%IVvmjXoY8`FGlJm;TU+w zzrXke{hDDut{$GsDwZ5(K8`RFo=5pi0zsZ9ed=-h7+>h4^c>@_wqrPlcL6${DKxt( z)|Dgb+d_OK0hhp(CLB%KtB%oj^Oy1IH=gHa-feG^D6;RBw?ctUd9bS5>Kx`3(E=qTZjU@@cPITNUmmbGizZsTp(%T*|bZD#HI?dEDXrc&jr^<~)6iUnrO z2CIDzs#t{1S=o``ExXYyR3qUH<^s+!4AYQLQkNw_e5KT%UUL z=Y2?R%UxoqTA@ssvvk!g`W*S{N#C|+aZ5%x>uhW6!6j?r36^9= zU@MFLDe&Vpm#c=@4s@qQx+ZwV2wPe1>oijIbfu3XP_J3S(Qb z>R$9ZLs<%Q6E*`wxv24v@!L3gvTc%$CJ`^^WQK@42%$F$#n+-Lz7D?BH)2X_T~e%Y z3s5{25U?de@w(;G=()82y+kGCfj#Er5d_tyS9OpEQXQhGB^KntI6AcXlRmJis!O=w zo<*1X;JQ{C%_kL3giUwSoXQ#m0rpdv%iss0a#I*H=lw7MS=SUM4^}HhVcg09Vc7;; zbrryx;9V=MoYlwmg9llh7+7W2XpkNftX$Fr^yLmgbF-T5R7Qkn5|++Hc%#$~Wfw$N zv-tz;=V%TOg#9)M<`sp%K0LX`Fv1qrF?P+@h$$*Z(Lz}wxx>ei z?O|C1%HrNTodAj40j$r%3_CwsUrlAtU!T9sm?ldLK&en;bR0}!)5>Cv9sMJ$5RT-y%`a1fdB@cnX+_&y_B;*Vg-Mag5>ps=M}eIk7SC1tA4CWgk5_gH*)Vx%8|Xx8<6N8cY57D)g-j|Ls>y{HW1E&$m=CQA1_Niw!{_z1TFuTimCRWDc6ebjd1%&>UJ zJZe+pThQ5D%lO_XFU(}e`SGNv^PEww%U{)@D9Yy&DN2vEPkrl?bb%o)X~hUd66Ty^ zW6?5@7WGEgg4Su4F#Y9NkUB-2HInja6k!h*s=-LjTa^8SJok^(YD>N#MmZT_D@J^Z zwHcRvg}=*>I1(L=DwRe558w}@$vCBfgn$`|jmA+{bb!Aj%AZ^=0WLc3aBr(gn5S5u z03oZcxf;4#YE;*1UfvWr78s}%yj-u^r*?XU#iipRK9d>FF%Vzq%OZ~|lmurTIl=gG z>}0@Wr`6vmCOhL30!Ye5-yRX)M}d8_x$ALvX3aE5l{A58qs%5+VOA4K^>H6$U!M`i zBT^zN?qBt~RDpO(Y7Ozn#6I=R8ewbJXKmoO9jxFN%xRYthHT>J)Y?&*qmgH)x)Io- z$jq)lbVi-!&O__0ZsSsN1xIb_|DK4hb&5}hD(ZOQ_z8u*QW)xbH`iT|=bYUTGUrA@ z=8I~E*$(ERa2;SeBWD6Y1-A5z!kxST@dWq_(ln{mv*Ka}T&RL((XJ_1y8%$?d?vct zr$N>vl($@4JHWY$QpIOCT=Af=Ri`@OpF@Wz)>E-~xC%3#ZvcUXOK~|*3H%NtM~jk8 z9jLRZ1>yNYOogD7@PSL(V?>FlM0|p==O~=q#IIa$$_MnoAI5}EK- z!|?}UF~c!5UkuujM2Uwzz8U@$1ay(#zz&9oBU$WAlAi~$4mSL^EcD<-2}KKrxdO9U zw0bz+D5?o9#D%XK08WEwo;5Mc-Us7WW4QN4yon<08Y*Y*dtq6jth2tlRo$#85lF*U z&5CR|NAZ^KunsBs?aJ{aM1_{IC6*D&;L;d>0V*MpJ$K(~x}T&PyvhK)9A28uFzqST z{YKS1CY83vZ+TNf811w4@jVo=C-Rm#ry3L)Rf9p6I?AxVQNXEFNZk$LqCHF^?I?d0 zqYnrl@KrYa2@YrmMFNM}bCJ)|G38=MLhoq~8axO&{f`5?MAR_O;ZFdlQ%d=B#8C z$ilo3WhBt#R0^_`c_B<`A#3eIT_NiXt;-zmFe?CSaDQdVAyNzGoO2Q( z3DgLZBv6$#lu;A2j2sF}dJOKTv}YVzbOi#39ZuxS0PnFch^i!8?I=@$1VcWHgGaXX z%Gg;*JL6kd&!Yi!*yN1li z5sqSzJr?-R!_0G2|1^sF>{N<(@NcAez3-a152<9W&y$ef$aiy>*IyPLk$X zfzwrz$t#?0U$(_@2UPa9-Q}+LmTony@lBODXrK>+#?F#hl-TD8wPYo~pHL~?W zc|I4VYm~xAGi;tFV;<2bGfmbtr;}Zk9i%kZk(fxCrRGVNg%j*?N+>Ndwx?n}LJa#0 zylEW%T-3awKtSaG4f8UdRTEB#URY@TKm?KNAV<6NzLA0-K2Q${EDui$B$`+|asw;Q z!oVn)1aQVN28nFLj6#a}o&>msQdIgd&`9`unaqY)pxHS0^5)7p#G91Y?jQ`F!+coQhi1T@2a$C~ zSq->8evGs=3nPr|6}k+Nq8sKCkS)&4(&mS;jfyCVpDN84#6F{geq_^FTUj1w2e3&3pJ&7mE+d z#ed2+7nM6il~5vI%aoDQm)eu`ej(M=?K1llF(5F1u2pdDk8@_m3kf1$v?>r?;m{nZ z_3}_AwvBPUwO-DyQrXhhY8-$WR&s~njs#Xu)djzUXxxTW1VZ?D<98Oq(B~6!Q zvQ5LJIMd7PvHs+y$i%)8aiGe%L8(*PwOUDws3H$b`A{)s%A(51mR`)~Ns2C3=O--Q z8B=*gjwDkmkCE{+Qc-2Xh(X=}r4u&~B0P;Xc-#FyZ zRzMWw&tbN476OgI&#=8Hc>;0fDMmLy%8bbzP%7yt0~*?U<^{2vhDk=2QaVzY=p}!K zNgopy32V*;&6gyF#F1JT5*+>dt#?wjk6?63#SCDEnu@+BZ1Ei;@Pv^DV&~=$=qvQ* zY})H8$-F$WTsVT|Kcfu71l+P{DE|=nx5U!FaS$|MXtYlSLd4E=% zZWv>{V&in2kLv{O@@>omazmJU{m{^E;Y8Z6c-=8fZGMUxn93BZS1QQz6j8PqS2D7vZZ_4sS`sjPRj|80WcjJ6m5KJ2@G;D@Dmcqxvz;=k zc0ys*N|l2-l849=-yK+LYEMtNJh=-Z(@%FyfZVd zX^jLKJLpyV_4qfHg^02}bgchxIMob}MtV*| z*29%Ydk1%C)<2)MlWSXjJEF_4BS(`~~zYg+s@Px7J z*fqBk>51G8DK?T|gLk^}rs_f3Fu`W4g}ezKfVoaJW-f~K-zPs|N7}=NmTa=J3nrl3 z7wo5bX!os?NoBmX*u@3bPm0}$lO|*VDC1vTUdq9~q*d`ii^rH@+!WFwPAiodCGrzN zHpFWnnkpJPnJg>9f(&`wEapU_dbJ>)H9pW>l!+XqOfNC@ud+y8JyzQs#q|g>zAUjo z70dFcgiHSoW!HjVVTxzk`ktw9@p+NXv34G;Ut)%tO;)lMX{dRC5im4;h-9bEcsZ=J zBD6m^y%5!cC+01tDH8oeeL7u;Uhwx*JlLR`ADrCFG&FSA%g60aC_XB*Q#AD{N(G1X z3dqDW5Txh{CIg2tXM)(`{WYgiP*A6|RLJyHHr`qvFr(FEbv=wVSBf)OsLIoR?uNa4 z5$u3bwT7E7e2g*wvP_Jit(@LoV7v#qk%XewU^StP3YFIggka^+T?3PFOY0Yk=on>v zT&d{^AF(3LDJ@Z!Ds&!rEa%YvZo6n&%kjx`-DU)Tg8YMIQD!w%7=S94sFhJ1s%~Nf z4T##*Wt37C0;*d$+u>ALtSGkv-@Zc=dXZT#PUK66T^uS}NUK+wYY(c>^C^DGE?3wPrPjTZi!-ZG#;cvP9P!eVjduxWGJiIBB8bviY1(%Il z>J6cBNY7T~5-I~vd&o$U*aeG5W_^zy^#zwp8d@#d{xF1rDEYOl_I3E3bXYzYg-bvz zXR2a}YCXVgqT{v|h3R6o4ynKW-4<5YH}|i8<=lu)YMNE_U67{eE8y8Ku=e!7YxDf# zNFZd-mq|f_s>v~$x(iXCq*Ap|M#78QmCnnBD!3Wq|B*yTq7i5Tm8+Nsaj8FgCa$;{ z4tl`FhD0mbG2H#rK&VJm6g1!}bSQ-DEoZC22#H`V&V(#8q9olKM3WtyT-G3JA}cimE`ulwPzj1o1TQxl8?TY#ymhhGNJ{ourpNt|qpW($hq`M)TIz-sFMHRMjpD>rN)41gC_rd#I_}pF= zA%?xlU(nz9x4)}<;AX5}8~b%cda)sc(bLNU00*X>t`$(!D>>n7Tx7pQtIn!EX|4{9 z(A?RFOv&=Ic|sMi(SLiy)W6PDeCpK zCgCom`{CY+23-g=*;Ap!&L*&;SoAxtRN$G8-1zY+N&W8*cwljnNPDc&Ttf9j!7t5uq`lTiJQCc%OX7Dy z+BBsM3&1yp4~*0QWK4S)XW~nWe5||pxa{qU7}*B>oVOyU!D!1Or;W)55YP(p;-4+g9{!4smi`OK^p$0k_DmMB$U9VnnYZg)955 z5G`L@5DH=!11YkhCCD>3@`?yXzJ@#IryzLiyNhZp$w>Wsar1!h*q#YBI1#lRPM&RH zVxbTb)iLA=hVR3Rmb3-CZl?U{2$!#|7lpzfA#Af*-roG2^P&2=XO;z;;7|dyi5}G zf7tiodY8NvvQHTmDD(F?hDv7osCYp{1hZ@z{ZM{N{dRvY!nB{?rTrfFrh$i1QaE{+ zJ3Uag-O`Xznqs@ggW&!|C^i+FA~@mYW3iI8`9c|V(ISJ?rqm+Ju7fAsk^n6FP5;S} zp=D+C4GA?;oDvbRL&X4kK!v~ADk*2q<4Svzo;pDXd4@LjwP{gL43xpOdry8fOQ%Q^ zG(c7YsV3)=q&2vyZqcq(v@3VIPhd@^r<9N~68{0UyE16MYgm3W+1$(FB^x6iw(R0H zDQD*#tC)k34DWJ83wa>!YZW|nxxkwi@mqYt#W@XQTUcg3e5BmcIC9v+3}q`SJ7N9TF8@z1Fd`7d|M3Mm66mYfLoABIV%>-UnXM zq0@z(d{H_kKA+6JIGIW(m6va6DIx*>Tkiz*aoKW^`o3^`K<&lh56W$Vy{CXp;A7Bf zR6wBTosm<6NB*N$ zWcQJrL8^;UWDzv26R}cCYTt^NZ>i*zEe*?=n2N)AUgSqeej}{+i2|dWh8fF}SicFo zr9@QrNz^Ysq}DBDsC}+FNw`!gTegz$-rAOTHl^e_cG36&+r?2is>sf(i6_vyoUA6 zGOpagw^=Q#{BRn$7&0MyVva;|;PaAk$?T#sYY0ZHE~g{&APb<11D)-RCDIjoaPr1| zGAbWcd>8mu>EbFcR1y9mKxb5sGx(C6dOredx zOt@J8P;W~xEHG~Qw5odO!*TH@_nyj3KTjnf+0Le=;hg&jdePZcIE1-ei);y`;HTtf>d z99P-F4?=tvyQSfnDXq^pbdRAXL3I~z@4Ab&hG3gR!vc3q|EnRklQ~ui{nZ7=oj+aF(bo&7rXa2VKxD!c=e?`!5p_U)oX@0p(Zy zNsqgV6*l9pLZYiQVp{M1k~Js<`%)z-nkr&!B%G1k4RS69UtaVe6aQ;%13_zP58@XZ zi|AlFpGOP6_7)kaK&XS<|TPf#6P}5Ya>Igs&#L8$ zueui=w(xO}OeeR56ScX;?E4`!z#87a7d3#SPvOeV-uBZXSn>dl@f1cr^%g~79L-=r z5l|FG$x}vU?I{>J=I)~mvPpnVysJg>Iu-~YlmaBMf2wU~Lx{*<%cCDY9v)MMw?iW2I@aJd1Vr87}rR27eqvtnRpjG${#Vzq9=8rBSHi{of_%I>lzI@ZR-=KZK*%fT zNi?ih$WvL!n6nEHDfs9+NBtoB1^4usRfy35zbFlF31#s%Q44`i>@_1`4?rrntCu?d zbCKl1pMr($qECI_`MKc!s%e@Oprr|9y@f$68dnXnYEGZLWzocz1Mo*eo=FMpL?K&U zbEmb+WRh(!^;PD%^Weug#1as;I;9Ngi;vvQ3q!pj!9U^~r_!UxBeBJhg_OEU355`0tLSMmd+$~77@exW9Jl@p@tgjS|GaR!i!OW zVmRD`vZonPUO^^#4+Syxp>z0;=S%azPveE?YNSn8W`tADI*XQV!*2=VAmYCXyduR; zLzm$!v^}9eBu{XWq}7m3ya|mL$t~<);a#B*psz1{7ZATrV%sx% zo>0g%S0f?kVN{;lAy#_3e5G!;CZ>5M;=mlPt)amt7G8FX;`_DpE`XgAsI@ElkffdG zt2S4Q(H-D=s%(!grXfr&%kQuTKXdX(0rEXP%(03~!3&2T+Spg(IyUcHa8w2e4-ijK zf%@w-nXOY2$w&!mH#t@=bM%sJn4O0PaF`$q^Cp}6$~fXK zkfjqnY6Wl`Tw4Pbg7;n^I-Hwg-)Z_-V4&Jfk>5PL!B*|BMv;c=dBZU4IUjyf<3%o3*u<(udGd@RW4InY2A(kVmSlapvI5+ar>d9G&R^ z@&LE14pac@7sgWbvMwXKUdV7=oFYP2X~W>~%dbRYCNE*>r#iKlrO~_-T0s5obH4kI zNa?HkPnfqhNPK*qjxOTh)1oBgU7MsPe9()QmVDTil76*yN}}Sup>;=Z%{;%VtTrDp zOU%f9UCIw76CQlSAcFqjX45l!MZVng6h3s&nAp%7tK&v1CaYybkIar-*m59@=>v*! zj2@E|?yy-_?Pf`()XXMWlrJjwK_k{%t`81yy701o-k@_)mW;9`OTJKE)k{o3T*J{E zPvajwaHq2Y;B5zWaj3R}T;}l#LBkxe+FWfZ4>2GAMdK!b-vIf8%=EDZk2#`wS!)aX zec8r+gws6$I%&R!9unQ8w(BB_-UJUIoxwDkz-E4b-ykU>_%R&>pUSR`=xnPkX#+x> zAn0Bc_yxT^4adlmm+FT~teuWk6Q{RAmok9NOEMQ#h$U>4RluxFo)oDU;Fz$0#`)+Yr(xV+hu9RMuSw*(-DN=+Mf9s0X za-i&Zn$Mzx6B#wjYr)XRZ;#!RQANtY6h+sM0NFH%i0kvbpYU{V20 zO0`3LFl13RN3Pxp6K7voBjWV-!ob5Tetqm^7HGf^eYeZw4dgCxi-&woBur>+u+o{fl@I$sy%byO zdZbpvWgo~??QSWd9@qJ4S4pwFiB?1;b@A;k_d#lxUm2-nEsj-FYze8;Ky}+ymgc<7 zGzNq*Mo#{pe`7u)Wn`YPEslgwVjsK9Z7V8Kqv{eBLYWcVdCL#dXPJ=fT;HeUpTl7M zIClP-1b^@o_#sBotQrQ|iX%Vq9s`tS^WZT_7vDV-ZQo=Z{4=h~@ZGZ)Up_Nf%o_W@ zPx|aW1>J2PqQ3OZ1VDh0LG*~qj#)4ZLCQr@MuKJ!)r`j&oYa0Z z+;L3&MV~Fw_QVzLOkfb_Fb(DbokmLCqcGW031amqj7jUokFC$26a-GA(9Kj@K2QzU zupwd-)zlV^gXPK+!1a*>%_A38;SP?FU5E*HvwVIRr0=XfcLs#WI>?{5kVo&m z)6g4~C2`}Y1(rY0MT_s=05FHKO-$*s?P2l#V-}=c!{qh*1aO>E$h@p(>O z7<#`(=#7V?z9j7}{-HxkmOLQ`ozAsG3}Ayhi@H?W`!6k_Fr07*Jc~_O*Flbt@3<1l z;5vzBW0F&FFp2c>!CLhBE0i`c{DzYN&x0t$YM@tCQ`FWyDBRweGfkeblHy}R5}z({ zmubLLH}<2!LGZi5KyVv+Z;Sc4tde$_^uP9na{}uQJW(P97RwZz8A!r?7dR%2SU8e} z^i?N-2-Xm7kPH3iaKKAL42kWfpmE(P{=Tk1AfT-E{0>&f;Y3AI-T69rLKDJIaB;j$ z@7>3Xcms-su(jyg0ZXAe zPi}~F*@Lk~P3j86cJ~pLVCKNwGZ3IaL^#bBvDc@n{u{0aE&caY1B}bND>WK}4}3qv zYPljfOZ9=E+UZzLk6SmDKJ8w0gH?_B`|4r_NW$y}zQ6t57J%0`_pg5C++d}yAP+{R zwE=F9H1q?mmwk9aH3w_+{Nl)6XO(Ik=D$SIZ5NBv0>}lpO8}`K%BWDj*%pJN1;6UTwJHyq8U;5 zkiB4VkjWUTRO%iS69{tQ`v9cHIOir7O7szab$Ve?;^DoZ_kqJ>mckHAQ2}q8M8OJ3 zHgx6e-Ht{;o5PAoct(h<0c9!}QDh;&9(&%V`AhD7Y zDco{Eo4)$?0^TgDDxh-9Oe24%1M5CM8OdmFy*nN0JyX=IMYs>QP{1;r0|!ire1V#w zpkEBt4`daoA%5Osj5sEDH8+a@9VAStfQ2gU-sduIo9bk{XAaaWb~dr$>`%d>e&lLE zZLLcpSmN7&tKC1QNr6??#-KoB_XK*VB4CBkrn!8D?ogeq1)OcVLwVwu7*RrC>da^~ z*#@%(z#`onjv6hWPS~Iz=XN{noR-vkj}A#D;g>~-Cal(*s#otBo>QJqU!GQ3Uw|f_ z@Wef6Ih(-c#WRSM+D;9{nh;h!nUU;AV|A->`x&t$3^W1Or!`pKfS{sFdv(mMQ^i`w zib!o-m2pvVP9vQqQ~M>5LpCevp8Ec&oc^$4gs1-!zn0Qk6ZQ6&y;wVP+Q~#3Elfxu zc~(D}HLbSa-QPUaiGq~uU8Rl*d3icev^cgz0vh^%Uq-sEeejynqgNe1$sQ?o3ob~p zwErHW_VZORgX^)A0x3)-Mur7tAZyktxOHYUGHqYa0>A<;X&Ah7HY52c zVEdd^waauBMuAOU)ez|_+R@)$!ivssKE51@^>MI+q?L~wCG>n-X)8K9;fK!UOrz4( zlR1wrdPhr(pd|{e>PfCesG5K0vrBBLaD}d#Gq_1^W!)QFg;J|X1OO-p+6ZcEtK8ys zP=`<#7Btvi*XcaFO90UG70qEqwFr{L6;*NFi~&^jR){vWrT_5Zs~~t?yGGPcRt?{4 zc-k#8`czxmE5wvFtK*I0r1n)#m5c6;nmWrT?k-l;(Yj77dozG6VP1>IQEM7LbD?41 zTqmmEzMJu*VoMxXr8q4K2Wwc9`b!k5`Y<4Au6j_Aei#4{P1t+xTwbnb`%JRkB(SB( zDjXIhp%JxKa|=QxdgcC{Zj6-F^x@WK|5ULk+u| z3FTHln+iLd3MJ@1n+tbpE>vjPl*zD_i%RbtN^9$gA|&o{jqbkO@FIREy!#uxHN<}T z!8#ij{E&7`W-{@Bn%H5wL@|kgZBl$0anPkL>V6dG{}j0BY!WU0jFtS6{gPfXawHp^ zWqv%Kg^KT1DXjW9W9gqt0lQ+bpXFe<*u!_NEW6~sk^Agsw zaAgXu<)bdNv7tN@Ti6Z&J=;5N9q_HIqP=u8TVVvzF~P1~EOntmiicH5n4+L2onID8 zGUt$!H7SH;mgK?nDoC!}m;yjFtqnyNQQtmDJ-hnQ>k%u z%w80wcrBToVyfB`uGg?eGV_3T2^)M5n5B1{VuV*E0jvc)bcD#FQFmZcg>>R4iYr-{ zsMs9~C1`HziW0iBoKCQs5rK}g=`)9>!4m6XT(D+r`BEIDX}Mf!Cn}P}Jl>|vzhb$cZND9DzXEQb4Zk}y{7M}3DZmeVqC`{L5=cBnlxHLECK507 zk}l-gdIliIet{tWq=6TNSmQ-Msg<$MZc$bE@%(mN;sTE%S|G=9aV+3=T;ySN3f_9lryzYOA}VqPM07+wdGjQR*emC08O`i` zgL#+~!&xm6$_E7pQ~*xlN8s>Ucs$-br8?=%ii#u&Y_wSuYIqN4a8gsR0n>ND>4P|% zCh)h!@lBD>i+ubTK3E_ZYbAW+Ts&Yygj8ZIHL!}k+VB|?DiAIUw#mZ-0dM5^N&GA) zazJFt9w?Q=m*V)(-~z$3fbWT_Ague*-1?NVRuUmC171~CB43461}1w7v2+0}2`I<` zOvD+L@e;i%6-5a^lSm>OLFpLvMhfcSB0qn#I7BjXu5@>jAK^eRsvjjud*nrNDO+p&}!%cX*m$bt2Dg zeS}m76oNrjLMx)`h*5Zwdnmk2lPv#+?xG{Q?+)F9Y6V~pqH}Tk?$^igU%!3s9OA8! z$#!U{Mf?=Te)5z#w^I~&|8xB1^KXw~*v5%|U6~1F7LV>>9R1g84*uI^ga3A&!3)0% zBD}tvK{Rq|^W23I+;vg-IAu+sja!a;ou=mZ}* zKiuEniiUN!H+T0aF-(>WlPw$P&Ss$F+6j3L$M){#^!A8NqEEpDD>{Y%5CH*J=fz3` z=cizDCthfgmTgPGot4tp&_N$2FZ)vv%*)A!uc-bO#@A)ZWDfhpl7u9s&yy?*vAud< zll<1;Bx*Qrpj`%+8Hl+MC6-vBib%0v$^YpMA`S!HFnG$gv3+kvxnl%^fY$@dJoG5k z(%)NQv?Q*%8JkwQWIF`wmHS?lg}4J5uz#MDxSZ(*E}n-ddFl%n*Hh+0EigWJ-@?v9CNF6b znh7(nq9^!hSuNhBXk3F=ZS9tXCI7hyib1&5&o~gB+Wp`6%{Hh?vTrQ>g42@4x8gXM z85hR>18$urMl1u=8X4{ULR)GKdL0$nl6-LT-hIPNq};-tu; zg>#4=SB#K?drtpJ#z^%F=5VWPXK%GJ{=ly5ijWW`S+__@`eMUDlI9u*4CZ04GOpcx zUY2JwVs@$?XW?8VzaDzuf&OFGN1`{geqt5>fRKcLrbF$Ak&mm;pnI?57*3U&D1V>L(ha4Do=k*%d44HGHs zWMz#=UbgRK3C3;!&iYm2T8b}V^~B((&T7CyO-5xM_!3 zjLFr588#;!H?MwsAqy?g+hm?Y+n)R8+j1<5hP}1&j5k-DqHW)sE>Q8|)u$*SwQiiT zC@aTlO~$#Pz+Vv!WviNWjy_iV_#A-TH2_(G?sE+CE@O~OH1r8W-s4DBFLj@yPd7w$ zh#<=fm)?QU^3g{14TFmvL|cCRsG;ZE3b?GI^&(t`MiTdSd*{C=O7*hkzZ*B`AoD+PD7A9 z;quZeF3NZT`2IYZxnckQ<6DE2ATG>Zyu)Ud8zU}COUy9M;E-z+;5Dt4OnNTm)({|{ z&iGQyn!Gq43{dY#=ITp`c3@?>j)3MIqBze4iNGZ{76z0E(aDTS|n7 zs3(3j1i49YN^rDGwKWQ@gO><({{f1SyZ}|;j$2$=t7$cH==%KfjGSUFjkGH-6V0(~GM^s~>>>Wqh!qSSv?HTtTK*0G2qK*%bI4(&QT&LKlY}ZP*byAML z;g}=VGLPQRq9Zp49eh%t$a^mI2c?BR-+LJKuR`UikRr3z(%5;0g`!KR4RT{lF$U&6 zgIf)FwmISiWYQoI_Hv>1vpE;H;1A-@*b+3~2zu$`l>th5dsqA<)^$ReY|k z-rc=be6Fg#TgO(hy?W~9Ss%Y9&eSauu7hd=GAQysc~i*#6n51)>G{^u0gA0x>(*HA z$LEz;7ydhN6@AR;pyzcb(E#!OCEnHy89z?|X>mfK?PGDii4lh-;|R zrUbCs#Gj?Hj?!2Sf}cgR9g1dkY;37jb_PBJEtl80hvQ*EDDFRpnwSIJ(7Op z5oXYVg#Q$X_-5Fp*-KQ8GlZpHZ0rs_)%U6E1wVE$J|VNZa^E|Zuc>lE6t&!wX3uG~ z&`WsSH-teCxW{$8cyaws>uWQk+<7+|+><1BiNnr7aCuogJOt^Rps;TZ#N;T-_GNG% z7F-1*jB{jD5vcb#X2xwH{3OVbJg4qEPA5u8M9M)Wz^r22FiB40qw3lHxd>BHlsgI@ zU2nlrr9$!_vD+qikEMY#Iff`0-~z$GROrQWAJ9EWLco!T5e(jk7Btk1n_D)KlAw2A z#K=-Mgr>Vi?7c~nPA)NuFrZ!&s!vl{-5j$(MKKX9;$>78!SDlDRaeTn(PWAl6{3U9 z23&xe10BF)CDp}A9h&I zvbl>4`2rpwX2LIvF!HTk&Sx6cg@!}co+AO*R~rsuT*)Aty=rFs@a&5V!Nk6}xDyPn zMCTXfpR)W68Bv;uw~q=*q$)MYKKg-Y9-sSZ#X>ZIf@KXWsteS$hETWt_gwpVn9X~v zZG-iVq+<^YP;I4_)yGo2N`@9`qVHc4bXH21mG#&8%l1ne>$++ZPL27SCImJnyV}1K z%M;Rh&2lZ0^VFSHK?GTeg#_~?#eTL(P?6Vm^?^D^m@342CWyL>uYwipcI093e4nr_ z#ai>D0zz=J8tR2%>QkXVX{jdm;=}c7Mfji7L8o57bd+umGpeQyQ%{Y?RnnNuobRRy zttcUdgHn5u;n+tV8rgDi*!OVL0HT^jmNC8SfFx5!Ksne(;jyH;+XdBtTM97ia&I3b zygrMC5)yka^hr8?nIuu*TBGAl0B_@Ji+DzDjD50g9O(rhj~w|EFmv)$_M%sx7D|`g zeOicqYBakuN%E*Yade;p_{_6mF1GTSYq_Mi-~aJNy+U2va9{ ziZyez@EQl+)Q!WeTB6hZ*ROs$eRF+r{r#_;GdL2MEynnCQ)|%|f@-p8RB9~7 z9Dn)BR{N`*;d48(67f`mSANwsw7RRN{(~~ zh@qur-*@B3AO+?&ppLb}Q*N(bVQr{iIX9CGq`5p8ksOI6su0h!v4&FDN*tveJYPm@ z@`%KSPEs<(tcg<_MLsa0k=w;$fu*QYdrAx{=TTmKtuu@@mP|0 zo>YignAV+%o6GK;>nc;1H3)2$Vz#S*e#Z3j8=6^EC*MBru)S?RUx=H%5O+`b z`^)n_ON5^fz_174DuDl?Y0LT={q<=YEpraNWDesz=Q85&MDI1qL8?~UK)VIMLA9?0 zIDwEb{3xs>SClmfWVF{~_zq(fsspSaR1LUSL62>HMr^>msz(Vs?@FhgG<3-@?7^ILZ-PhQ@j)cN`K@9H))`xlRV!p-V;P|99 zSD>MLk8=;t2RPrmxa&5&Z5L;a z!Q-d0mX7U(g1dG^rAc8f(_+avLodt1M~XL~IAC;0bVeMf0jfejA*I&>0!17wbsI_r zkqB|1k~)dGB}3#(Rp7L%JgF+WI_F1ismyK_To;)r-93DT1|8@4?h{WWpB>6T-$x1| z7uf*04BMv39p6an#UAfA4wv;^m*VA4X~|7j?u8Kt!2Nq19s46G~M=HkqR2b>Fx2+bwNYV>m2pI zlKY}AFe^d4Ccf8(d6x0fAB;~oA#13_pK|k-@T}*Th}CTTl{2>VElX`IO@F zhhHZ&RK0eO_;4Rq}ma zaAV!?eO~bQo2;C_x=#7`Q8IC(RSgOHUfJ6Q<{tGQX>bf_cJrnxMEefZGLL_6`jC7C zKoG1uY zTB@4|WKG~^H9rnDF?Ozn)>wGQt0{VH`d?q z(yt$J8vffpa3|Cyp*7xxsSh_ktQ%8mm^~edL45f%D z+B|lm9i!*6)^TW0v2?jZG+l4`5H0ImwwLI+-sK^>-u5A~Xxp`?Sla#}I%ANEe}3O| zkVeZwS<5~AyD@;~hT`6=!&&d$wED$=j}KgtEjsmi;)A_0tS7Nv>Y* zza#y8zx`8gl24;Bvv1_Hw-V5<$!7sI4N_!@Z#QLGwhzfS5p_KaRfbDyzPBRgT9(&#F16@tRE(Z76i9K7ju$Dp_sB=JMw!my{Y|2j!>>txgYKVy}B?d-@^;rsanuENxM z2a?o24p)^4WV=3r9rxeqAlCN(z=I6D<*zrpW&U^HEl=s|p|||iX19F#!|OHg9I|%s z-YMF&8|H~==qa-;!+m?qZ?19UV4y$$!?qVF9Nd;Z=RyzGj2Jxrruv%G;GcV$ckE?O zQ2X4!e24wZ83UW@SzhIJPuO;*uhxHVZ-f*Fj?7_N zD^TFbJn+JYu->~psUx>P$iH3AMb9iRb9dDEc>ssXw6l}&R?%C2VM0thV_2I z)nctVmiW}6Zyi&8#-TP0WnM4bZ6ue&PxQS3(0AjH!mPr8sGzE74dGTbB&0>7NmUVyq1=Tw>nDDu#Ay=mZE zkk}9#x$d-$^DskF$;@3GKDb%FrS;NZr@o(pW@lUCfQz&6T3!BhNGP}R*-j?>viW(b zGe2pfqHJfbskNIj;g>sD$By4_UD3BSL%TH@U2%B0yk(OmikR`dU`_>$xcCr~oN$zv z{U928b~oBlK1shqiOSE;g&jH6bap8Ke30B6ZyMvnQ$QMH@4)lcW zXn@2vyn*t`i(~o6*v)3|hjW^=UI)T*_K!J;+^;!eCP=wwf_)V)EzOOfI&!)q*i}cJ||&%id8ax>h=Lt-#uTuShCcr(U^k z_S1@1j-8vBuOpv1IvT$|445D^vU$&%lvR+#a&z9!htzallfiG$~Tlp@G_AqUrn+Naf z|N7l;*D1Ly>nsO2DDo@p6pEU(>v^yN(I8GtRr}`Q~`jBn#pSySjLA zvSh>-7u7O`%$L|N5C{UG&I$8g)pB)+_e+OMMpN|3)>aR;uy92lpV%}~+arXptxp^# zqM*@pM!eD~Bsu6vUWXJu<8!$=jB+CSSJT&eJ?mxkKMe8VHVsZohn_7hUvO)NAk#ZD zP+2Z*EP@i+8cWBtbNGfEm1fQ}oHj{Cqx5I!v*E1;ueW#$!wOy}W7o~Dg1*;;^KA>8?%WA}?a<6sP<|a1*_5DoI0&KBc+?g` zhLszscP@@QO_Mk&GEn&sk!83XFroh>PDy5ct?LkUt7~Ua8sl%8c+Vn`jk*On;1@cJ z*oJTCWf4Yx`Siy$>U&YpNWA9z#@pu64R0VAqfBhAP=BSS1 zwt5nMN#R9WpRx5)-2k1=3wcw7}pyn#}C;tqXhqr?;f0NZ0N?&p&r?eRn@$Xx$zs&n$TTo zT?EGUkH`%`YaM{PEY|o#==(uzxk7$-6tZ7%OVn9UPpFI{jQ!WARGa}G<)zYXRTHA+#& zr1qkb*cj5Ty2j1KJ)FP?OR9N{55Oz~V&yhWoRNCK%>YjX<%! ziOF?T!MPuy0=Mg(IUEH9( zUHp|o{s&=IRpltfMi^*6@N`Ag_<&d)f&CJarjt2M)kFXH^`uSQEg z<)`A=&AT9dh?1vMuZu-;br5oGk^SS01z<13SqN9M^h8DYPaETJV(gIZmhu@;TVHEs z)x*_}oj1n%t>9bpHK)d|2Ouu{<=@1TM*1$Efh?@{x%)N{L6zuu44!4kYsoB-CS)_K zTTSRlaT-ueaVH8Mn2r+D&x7!}&PY8=3Tru0d7jJcGO-O{)kT_u91|^M?$-{u$SVe9 z-DlCq7bFJD6vjg2O&HZuA{3A(4-6vYa2G(kbA{t)@NnU=N)qTmwGvlU?< z*DW|5Dt=HU7U^0N6^GEo)yAEqF`W706Kn=_x_kkr;{lI>Am~Ai=Iy&b4``N`ZthKu ztHTzlMV}nfCom@4*gC4o)^o_HGypC&#Q0 zemp*$S7LSLvEy|yKk|7SzH@l=!kGmwtN}2XE^-w5p07gTy&g!Su#eu~-5_si%eqT| z>%W(tZtHe+3i+T4U}72QmSsmb0?3F&g244fUw8bCstb^~ki>nuT699Fg=hc@aS_3Q zxBBXl`Udb`wj=K>3S8S1H+nZ4_C{DL1slSlwBctUBhK&uRvfMuVbi_m);!Ks1U zj4%yn#hj${_XE#_dlK~}$sJK@a8(ut>gsUt#?JpFg*2bwa%2QRRlvf+@aQMTvzf$4 zpwhhq;ofm)c-#nQ;Vck>Ntm*O^YFP$E90UP8U!lCGdN(sFb5DrF_!@t-Se$q2A+#9 za3kzMhI4>$06>J@WBv)UHz)Ig*iFM^BtoQRw7YAL3J^;3sW6&~ta=b%34z41qDVrH zH>*?E*!d$yZNVMJtNKn9EyhMUWX>}d6p>-VQs%2?_OAv}C0oDx^RNDPc7A$) z`nSqsxgCAUl~3V6KGRWWme$uV_B1#(}j5k^2z<}CM z@~{#>2d}5R^l~?@%@8GBdu5URKrmAqgrs3%JgsYf%7SLt&3c-Jml!IA$x43JD_nl5 zY09K2((La5o4wQ06og8vgb?*r)PPVTILp9wCOD@#tnji%?!OkSv87VCu%w1ss)lmX zZ6Gmd2|VvXgSk)cq9B;R4DzQShzY{h(Qq~RN|k69Mp2jrAoKWSfXHwP04~kJAYG%y z*p8reQ#l)hoBbOo%JiQ(Wa=>|2;O_3K#HPufxRzeuR!}}jhpoYD{WiGbGI|XRS^Er z0Qb6xBE=O&>F)KR_~1NXk6T;+K^v1kKB2=;;Ff0mMHocn$0ieLzZu%u7F^2}BODxA z3}V9@Kg^H=A?E48;j(ZcGmPEHW@yh4jETab%NLY>7~v|KE`+@&lOA4t<(Csz{KJy7 zvu%xP=v1ORtU_9lnZS9Vv?5G^6*(e8O3)=K=a4(JKOYI32>aXUQ<;DAlP=|bD9J@j zU|x#Sosx}o30$*E0kl94Pjd+^gSOy!+cbn5a(CUcsP3i(P=zm@w7cHG9YXUG7D1Ol ziY(IB-a?;dZP(+|H1wu$7}7BDMcGdFQka7XcVX16h3w!ExFGc|?+%3197Bk6mR4~j zEC$cYV$KLX!m2^&IMLzaiF+a#0vhyOdPv_$*Kb;g?6ypBDYRHNtY~=WY8Af8Tq7`= z)0)DPc^iRknM$;-O6vx5ocey*6Md3-3!uRnOvIE+nUZRXsyZJ za6hedwQDfqV1)%>23`??X!Dl@{yU5UZZelO^{nEyO2|F}zq0wn3E~W^?voyF!V`~I zO(hqhGc8bBzoXhp^5N$+{hj+T5H)dvBtU~{23=~{=qyUSw|Ge|X=B9*xkHCKR_v+C zz#S=PfXqc(GhT;~bjQA1qw`Uf<|y-w06&`E``Lcz(k?&fWGy7+^iV^O8C;k-dDM?`m5M3|Th9A>M{ zWwiNK&MF{B)S4<M9G4du(hLdfe`5ihI#;wOQsm;sz|3nab;S07A6 zLyUw4G7XV^XKY`h`jx^HSb3lOsDb`D$3%1g<0&z?N|)G=ii2&;Ub)!&m{d+xW(JZ1 z=jvp7uo#~CEQp!Wkex^b4M={|Pm$?r;!vAh&&1K2G@60DeJQ^M*;@(qUIv3blb;6w z6FvVRL%x^d>0`vqUPE`(C#(9S0(ET=zGgVC8UI`EiJ$KcvOZ&OeazKHAej;aRgyxi zf~CxyAMGddTe3EqC)i=;#%H=&Hbir-N0_sl9ewPji=7v?nM98kx_qg@sGrZGIopGj zSeb>t*YVyhfO&18z8`1=nUKz^Cu=+xrP4UMO{*oCAs7V}kV|JGC=Te}oGX0LOBiwR zxA26P)oD1MP-fAOogYDMK6)Xl<6-e}dhScV@rQ_}yC_7f!5WB?jn6{vOGBMD%f>Y5 z8qRnQb?VnNgNK=z(Z@3OvoHqcI~74HVT>U-@4|c`kq2+9_k1d1R9Oz!p+aod%Yz#O zQZysJod)PdXA&&q1V%_xT)a!W@&|AHO^ZLooX@B z?-QX7otH$MKYVEB`)g6yU6ALZhT)R#TV2En6}bdgI^jPJ<`FgW+kbPi3!A1g2 zMl$g$hqdz=S6DZR8ncOm6anKwFk_*Mtx~A1VfDC<(bcR`wGQd#!FX z0h6Wd`{XrxRc_+Df|?Z#@91KwSu$1j;Ycn{o+2vX#IrvXQMcUEn#o)4baNR}O|aZt zU4gaa^$j1#O~wD$ESXs`Ig*+!XWF4Cz~^^M2Az)1wJU(J6F3g=OpK@VRLUd z(&i@_uxqaRp{@4XSZ!06njT4Vt(-cHaxy`_DXjZ*s&7cJBt6jLPN3G_@=G&d$*K`g z|C6b2abT&<7<&tnSbZy!y@Kk2PbOf z(i6db)!j!ImqGRj)r@C#kQuG?J~^GwvAs4goQfRb1NsBTi}WOL;ql-jU1lTAM3Mwv z)q?E~DxMg4XQ-^7>8?YtzdWIs!NzjZ&E50A`nS}>=0B9}q_91q9%K>v2o-{BsNDwu ztz_aRTkXQlMG{a9njDZZ`el4BxS{~DF`JfL{CcTAGd z56Id%CI)RC_rPFg+w!-wuskAt4#Jbhcu z4^m>T^xMuw8SiZFwnTt$@=9*p-}a@FW-xC>C|Lr5Jxi@$A4v4PE^gpe5$}I?{W45_ zgt*yf*fu8YV*c43aIsGj@U=k%pKtA()_4zuG2Hv0CEH9O-#s|F5PzXvqs*q9wNEK( zor{@=lntB7=*oaaKj~0z#}&ykDJVxbK?MkNNMvbIyZF z@%Vh~{7+Jl#b6#4kKCx-59xH^X$B-$cA{fk;MqA8cy2-2bBgcsrXfsU4sMS7P{fou z3PM4?sNwh%ivwvoho56XY-2$hp||aLkoK!;``(u&*XCASFsop(bL;-z18Bb-RRe*G zp6_)X=r+N63BJy``^$Qvv$BOud*Cd{BBI=m$Eg8(6g%4kY8Y<3X1R$6BUJ)qHza|S z`!l3^4QTXUsxa80p%-E_DPy#1$hBbYuF@$KAzK)`vRqAF`YYYrrIAbL_iEHgl9pr3G zcFfQlGwzqt+b_1{_DZPi86}xi7zKjhAv8`u3CG&uuYjC#?C=+rmu1BqG=5Og+&K9K zi$`UwfXNb~pnd|QuO&!~Di?$~9GbOCwnNglM*banPzx2E)<=}R$pPm_yey93AIkRg z2F_W6r=ffGkUQ$K66qCH5av!wLxN_W1xSAzZ?$4>VNZ&R1R-Tdqf+)_oWCdg4gTXR z`iD7zH%&71{Ykiy1q>}wVt6#6g>~Bc#I$!4&7bvlTfMykw{2_eO$=uHx_Tp<+lms} zzW==|KC(8D==q0Ieq;$^K1NjR1e{x`A5m6{(91|PNSEcWRLWjnw|xEXX%XBv!8~yL zhSKxL8CUApU^dmO3YXy;6i>e~DNSx<05@AFIZbU|N>ePWrL-Q{|JP#QpPoQf!N_Nk z%37qVLT>9qRU=o}fmqedowg%bErEeWTI|kxr40ZxdcIfrugpzFxFDH`=>hk58C1+z zhV_pg&-;n1HqS&0uHNYL_w(dbWEL($N1LeL_PxCVYVn(k{cM5HCWU5A2C@wL6MyjY z#@_2#f*iZ7hoS+?%3kZOb+BP9VY9bbm<4sgc%5Y0t;_a#y67$1b99~7(wsZFZM1x| zT=7n1c;26z13RDREmC|{vd*F)m?L4naJYdUe3U<7riB7OL;3il(HnJGJ)@nhJ}E-_l!&2S)NCS#H`=DwRbx^i&QW|sHcg7ir@#glQaCH3 zDFLaJ{#=q>igX=~hj+QTP_-p+Y`|_mn4%bnqQH|I=1SO0OKI7lk==u;t+QG)sQy9J zeh1p%4YfwHjnqJ6zZ*H_hax%#q%JQ?P#)t}syrKJY)6=JkuCUm!S7qY!5a&%Zz-}# zgt(c0k`>8-BLylEx>gWa^%EL*Q_fm~gw|F^2f)LSNtT_U%z<1vt>h?!rC=Yl*s954 zD@=C-(%r#uJCwRfy9u@pdy`DUxO>prd5Cp!CxwyT%OR^g4O3W(Qyir@2i&XKbc5xC zE4%p+;@2vmc!k!P#P^kTG0gO#)Mq2M;~>b@tB;9{6%`YG@?mZ!Iea$7Ses%hfZMt$ zrim-Xqp(2A;4jdggkBhnmLBi6HeA# zDeFJXlC(sW`_2s`cM??%Sr@VMD5^1~AZlP^_-nN=fwjL~JO8izdrYRezi+bl)ZIJ^ z^X@uGwYpFybCo2Y+K{GEE_Y9qj7gGD?NVeuIW?ff)n^UBRs+yrwr%0R$_chF_t$vQ zRz&{heea#LzZP)l`G+Ftw;<$WL&4U;xG9mf#cGSvKzlOFzL>ZBK&gT3+5oksf(9F} zXt4Q`239o-8vSk8LoLkM5^?w{1B%-CN+l9KUQR+Tj6;@i zpLfu%dIvbH3YP90)4&2d1&4&0a_3DJOcH_~Esb@=;Yw6?6;g`NCCx*{*UeD{lV7_~u(_te z8TJ1S=clPR4c`T5o&Z{;UUSwe?#m*?rp3;M`L#o8dTD?v@(|PvnMg9e4)R}*e^ZuZ zGt>+jWO*}|;~@c+>qHA~#e@O3FR)9hxa*oF;jolZtr2{M%j438Y*K*%%mj-U%dKGY zj%$>m?IXi+DO=%P=q}Nj%8AGd&24A?6%x-Ulth#7KJH%TrmC;{b4$ zgc8nz@u}yb@hiAYJU5~yQe-K!ZDlCxok#dJ2TgL2Bz8CP!xS#kXhBXBNA}DZUnfsP z3QtQmK|gkpmc06QHoJ){i%qHp6{qMwII`Ho z|KHw~EH?mUNR}Prh!zZ#PKHw^8CBsWldn-p+GV4($h@2m-n=u~w5|h3 zyu1!Q?K-8MhCRYP1o`F(u|%19bOBo3)c z!?yP3!p0bY#V?*hm|4+>4K}#vK)lWW9$kz^egHGz>LkSC)#&~FO@>!6**>8aa?nH~ z|A~QafKrEl-Go}47CrrLFwCmVx{n~lBf5!i(BI2i(3@scLvconV$ltrPp(HxxLC(i zCy>BR%Lp@z9_Nko#ii6#BR5VYxsA!9*of(@=}}%eE|_1xB#~e@=IByzA`mPHCV?cC ztI!24RntWIkB5y8T_d~XSh9E3ox1A0MVyNYX~`ye>l7G<7qfuuN?`Xx(244>Wt6HU z9CgLSO5mk9kij+y{K(9uE9V7mu7cVE?%#q_8tk^2KRfFxU1dVIY6S{=;V6XZ8YM|~ z@c~MIHi3ZFec>L;!6mq{Y*Mgco{}|^F=dQxeCn=?!3p>1l~27A*hR3V9J_chmgTKY z^{DdA{bKN-`>@6aWAK2mthmW=&HYvi_tM0{{Sg2mlZO003-hVlQ)SG%rp}Z)YxKY;3H3 z37i~N@qbTuPfyRW$LvgIHk)HN*QS|cvq#7UB-}UQ4oSF?E8%FEAzYhX0wRY%5CoNY zVGu!3KtKcpMFF`)QMrW`P*DMopZe3^q07I%Rqu88>~3QGeg1)+eqHabSFfsGy?U#Ul8O6~YF zx;}FJnP>Xvbe(WgS8d&yU2D$l+Wo*oyUy@WJgKLtDK%S_anK%yv46}mPF-04oG$k* zV`f)6)@vANxrUJv*vlI!+(m(#UA(q(*pzk~M))+|av6Tth)ez2`C~|m|HEhS;D47; zxd$3j?iGm%I{BDuWa#n8HLh{kHsB=qN9}VXuP(js9eM9L=cMz`q32<~>epG)?lDCi z*Hf$4K0;w`8~TnyYi>ijo$3Fc+DWJTlrW>(%w=6TF5RwUoB6;-NrSeTM%?JyXd0*g z)i#nU{_0B-#yzQ+u_N_=!!~q#iRtY`gJxPDQI%7gZVtw1a7r^xYe)yYw8VH#cmmL@ z04?g7RnIm&JG>koRQ8l!%h-;dR8V#pW1lLdowk^_lq%$R)AE;5cqEmmIF3i%O}&A9 zu~ziWH44*(n*M*4Gtpx0(Jf^innR8Mi4~O)^@~v^l!H zCb!qxQh7cNYbp~h$BmXVXV3+({S?sCow?RoBmWpOtGu!8dY~zeJ{#& zAtmEfez!_AZEJ}ZszlSbmS}I4sB>$HR;ff?TT8T7C7Q9dM1wp-hU4h|baMkgpEbQZ z2t1U=NO*f=HhP~!;?L5LcRxj$7daH??L$%Cy+Xj2osZ}9-aUBR9DQrHE5&Bp-m08{cc-Y>Pcr@GI)BKEk&*B;P ze#ozm_c&^cd%r|~9n<@r;vdbLe>6)c2U|3tMFCnhpj82~8o&W+lVwb%_7HZmruQu> zcTTmX+pPc0rBKQvk>@z2)jG!R&X?of6BL&pwMzSHu+^O}dEa%>OZ1Uw)Nmr@WxCs9 zqmyXXPf1Yj?^C)|o8j$;N!}I~Q7Czjp$LlFpQ6T;jyl730F*Bli{4Y?!36?84e;_P zxZpiA238>0v##K=O(UgEVJW8p9N@9D43C}(?$;AkMrV(I0JSsa6#82P;uKf<%h7as zML90A11AN8#S`WIfTBnS3?a&Ny!Tbgq*OF<+GJze6w;m`PphYy5+Gz2f&^(vV9lvI z-NVGvY$14+V1+qI-LR{QkmRlOusI0AB?iGye;JW-Vbm;{g}nFEaEvs#+bjxPXy`a< za}sUl%qge3hgB`wm86;-y=l9;lj;2o^t-)Gla#q0Nu9h$bGO`WSEpGOS0!namX%X> zCE?iqq9j_`q*}>spDmr#BzX{3vhH=7R?KS5Fd~wy7T__sAt9S_7pXIFnBY5>R$(5dQ2;C=j(SP+%McfUUI#zL39Ep zosF;SASO@vD#zDl(EfB~M#A#J4icsh=8&LHCb|>;bEppdAW@>iYBXujDqb^*GS4Z* zH#_xvR5es(TwWGPoq6vKgPUwIJF+E`XuEz+h63-^h>4!np-K|U-8`pgdf((gyXpOy z1Cvef8x*+u2b6BJcL>Nl*J~R^>PMPs^&v=kyUmc9?)Z;lZtbbzRJZ>fH`G-~dO;r} zddXlo+syTN)(@p}^PUNUkeG=SOvvJLoKC@UVq{^+Pv&s7vp`l9e#3WJ< zMfSf}fNpdI6+tO4;y6S#6;x2jl$ow6 zL*bSa8`soVQblR%GI;A~i~``l$5tjuE+?D~11QydH_$6h<5GIIpiNRiBzdJGBfLD3snc{b#_7lJeYGrTO?2uwwF51Z(w<2K_Kp5_!j9UV!!%>NW|VGW`Qd z!5BjOMrN9(hb;Uyr}jmfe%@^~6}|UqepJlSjuAt2IsD7#jhWyOQ)sRoscB65*=$R| zKNbpQ$@Y(fII>LJPf;gE25iSao*=gFIf()=CrQ5bdPymsYYd>?lg&K0)2cKp-mKM+ zXB9j36g(sE`3Sd;uvnt+g4Tg9FnFDrHB-ejN&6EhK0zdDcpqVs?5MqsrhSH*HoRVs ziFYTXp62ZYIVRQS#dHoxJ4sx-DgX{P7IT+(A{1i_%^h`qOQ8C48lDZv8>SVF@fg#3 zVG+#(?!bU>@LzX`vWHB}pr-87bu>4fE- zN{P-PUNwJcoWpT(dZYa^BF{8>B~Us_?J&Q^W*f z8tuk$=Z7-uqM)tg8pox%l|t<$P1mN^N;SIv!DxatRAeoMo0>EW+=%j2V_Y*MEwtSF z(FFIW0Nl8icE>M52$%_TJu3A|F>scV zyd&)Vtq~GlBq=6E*Q*(0cCVC6qXz;iVa&?(UYHOMmQa~=WrFo@(kOOGd9;Ec7Oz(j zJEg_`AhH_&YH3p;@`VIeWIV&q0GD`;U?Z8@E{MMoVMFT}(Ao-JMy7{eNelG5m`G2P z>0ZCe)N7zE@P$lF@q<|t#=o$nk<%<;PJ{H5CQNT}GUib&x(D@snton4;5C8=C5CV* zmJ~uel9tESW;<3fzh|Fvra??`e-V|CVlkbNad7<8A=JyWNUWbh zp`4wy&8+ReA50x@8c3#va79VZ1Yx{5(%fc^7IvgIDB=+MOB!<(ZJ5R`M(^2BjSQpT z9L}SdY%J6#vF0SY$kum6dmMA+IP|mfHPCa}U-X`G<1D|3+Y*u_;t9n41XJ88ffKhMnik|yb^o^N`LQ2vsCRsPCI`PB)EFNNiH&y#W& zNb16<4K-r9h{8Elvzrz|{@Iv%sM|4Slc1u6L~Av$qeU;l4&m3qk!VSEAt7|}_tCt} zqN}mOHa!b;*hzHQe_?any{>vr!u7gg4Z48RR!&a%XW|*BxZ>v${%PQp=P+&e6XC9d z65^jh!1{eO8*_HE?QW_x;g?$Q5P{0^xSO>%6NG*#$GIT&Cxz5^4oKZCuFSaJG*dNY z>4_hH_+i3dgUZgMcv=fv34blU^774_8iTG4cDkgCQbsvyAr~*V$FuQGIVVetgskI# zn_AJGjTcwu2prbY_qv*2#~aITmN{jTX8D^xXq`G?>!Kg*}-lnE=6((&(y=9#gBaNv-B$erTH5jbzTuG^Q?< zZ4S*7@vlh9ih<0mW@_`O*WQe9W3DzQgeMSa+WvNw3o5RCE z!*t;*rg5s8_q7gND<|B`>VB#dyG@|c%v9 z&8{^Er=psSJpGHn7Q8uV-kD~71N79Xyo^x^EdOGpm`SLa${J(mXnkpu=HZU9Duz|i zgnHN%&c2WmlQ!nMIs45jCAJ3dB~i2ZHA4qOiM+!T0nopM$y;8$62v!qUjuEsfm{qyJN4h(Sbu z9LtNqSos+z%gKnh#td+E}A0>ztg4}g+AU&qVRxG z=-1(Wj6#nNAFJ&QReU(bArt_L$7riF%lA3?bV!&CS-dQv}u)5l69ZOvfYyU(t$}R(bN#%20 zhe%0A&(7YJush_{64i4-I^Cp1Ql%6E=tht*47_pgbFt8H?0r6je>$eNhChPw@xqO{*AmR{97`%?@(T(a5_r?Eh8KLA*MIU#7EP9t`3YVQhC$=G^G$cwu|D zYaGNcpj{Y7UWxbEZDLI{1pZ6vKn`+RbJk<_EM%Mh%04nFL|1EQE@M6%BJU-no|>i zsg#U4z7*Tad*%di%ia<^F7T5TyfuImy;+F)l!}?EV*<=y4Rgb0X*I7c_9I@{$+jcT zu`94S8%kRa`cS*g8PvX5B?--!F`)_$hEJ8t{riq8t6SIJ-dOvbVzYhq?qNF~Q0Zr@ z^zDs>(kxJ^x%78c>Rw&?Qzw4)9$`HrDrb+%Ie829V9Kd{88wVUY8ZPP=_(42 z(ACg{bk#c{U2RfyHKazkcMM&PsW~+PI6_y^QlfO#So)UWAzckAy6PQAS3`=fdbgRb zhPIKeHVIwzZjG*n6kYXhBV7$Cy6W8~x*Ae+)%$PL)sUjA-hY#>hSf0kHPTfS9HFb> z3F)eDLb|$B(bcdT;l43+HKyj&1mFl=MN5g&Rb%N}f`@c9tmvw599<17y6W3zx*Fa_ zy1G;7s&8v_HLU2WZyV`qSkYDAHqq6vqN~1to34fxUG@E&bajy$#{NdSih?6_bFOdySN-GY>LNu~{o71e7i}Y5 zJtB0~zcsqLNYPdQHqzBaimv*%iLNeEbk+ZF)73?auKNE?y4s+IaiEc|qTmQ!ZJ3a* z1}3Dd=M`OTP$N7rhOWlcoSFa}p{r;qQMzg@eM|6=t~MyT8W=}c8x&m)Y%^VL*hac~ zUg&CIYjm|i(bd2<($xkU99M8{y4h2Skcw|ZKkV>w~?+! zgs$dqjjk?MbTxk)>FQ!dSM#@tt}a$|HUHnHtBVy~&Hs1k>KHRLOb*R50vCwDmm|kE z<+9P>0}>No4nQLw77aciWAm-qTE6M#U`5%OhB!cgss?aim)%C?OknJJ{$nOKLQI0ifNMW*%7b{Vs8eVR@wqe!U0hxO%z6C$goWsHg&AecHWN6 zB3aGNb(*p+lL34!i8!~%k;3tPZa-qdie1e?^v?)sb?br!@V{xhRf;OYB@3n z6J|ftVi&w>){0cdzOk0}S*){|_v&Bi!YV6ZlW30^jA5b|}|JND58m zz0Kq%-glow1y>g+U*@XY7E5}-Ro1q=0_sfZ%;l^;aN@QZk|;147UET<>ySU6)v zwOWpU1L&lv&m`zQHmkkIwmJspuv0{(P-{*ZXW2fS@YST*4ZD#Y17?Bpns(fO6I+@c zHnFL!} z_BplFQ)9R9+A|}DTZ*akq1_9NcJQ^1;RVniI))eGu|l1pvW6D(JRe%5w2j4*Xudq= zDJaL*%xc`qkJ1!jw`}&Cu=tl?!xCvBvN$FZ&Oak&ptt-grL~7pm-%x5YshMr-upl0 zv;Xf^+W*HYO+E=A^tVd$#657p6+4!2#e};KwksOqF+_q<#}vj)=%j9PAB)ePOUa3=V|B z`C)K-9rQnoz3B!2|H_sE7YYklf=53;O#jb(R!P15h0jXy3k#*wck845teHM?0Ks@dbp}7GurJmZoppMUh zI(Frp-gWG9#*3EW9Sry)@x$~#56)kZv(Kl&F91IFI~t8=dO1f+BuB*@*_~fAE}u0a zeY{-%B2aAlH^VP&10oyTqu$KWEU8-gvSa#Rg8HxrYq0uU@UHuc8_k|!drhAmh!q~( zC?2>c3*^OWNY)ZfmTO2hso^aj$QCjzZ;gSbvyS9{O(BgJX$@ERnOz_?C_2^x#Q}lfuUte^zyUAt4pGD zRGxF?^?Z3;D3A5>7?Q_Dc=U6QykMlm8)Vq<&O8izfySt;^8#HSd>H4HirzXCK2*0u zBO3ET(cOvPY63Je}IC`Bz6NdF#)G~+-LZ8dlk5K;OPtz=yJn2N$ftph;C7e-bB^bfi zF}e03khiZ|BVsIzW7Fnk$G~$LWG(zCRy9v5C@Kf4E^VsOuXI4{KJ`o?O&MEjQUb{|5KfM!9{} zG~G`F_7hdvJJv?IL;DzfeEW7}F9xN3HBuVWpl#67hR=!UJl<_4Tb*eAbB~FW+cAL; z;+NFWb<|tOBTiE`y)M+{ooKTm%aoA!G8Q3Kgzhq>t0x2rP8grS^k$+p=c)=~B}(TX zjpa(D5JT21G!u*gUQg?^-rYQLEdSdu+H{*mZftG$X0cWunzCL2A`KUgS&%-oG=e}%<6diRm2$Y;g;{ zCrzHok2g-W#~LT@L7Es2Qq*y<1{|#Uj160mx-a7UY-l6)D#bQVi6@0ot>gvu@RLw^ zRzdlB28?EIoNyzvmwM%Np0dVdPG^~>~ag<8>qTyt=kigYpOJvN$+(6sj^(}$9y!0 z0zXGWD{GgswnVCvCZ?5*+urlw5u`1s;~jjmOCjZXrPnyD11@A+svU=xb{Mp@g7+hn zX+B}l%E4F!eqdX;za@o}=vFmrGXmw<^`duR^UB@F3 zcEbBH#b?ZfvX1|R-rl^H61AD5g~Nk6VXa#%=;%gMBui3d`5C>99NU;a&PZmH+8uno zM=TeQGp_Tagr4In)2(#}p~Re1$)WdICu?Wp-V4B5u22egOkOnQ)PFHJU({CD=ZkJI zT5gf>63Z+OGl@UPGZMHX72H_NXSa^y*~?Urwh}yU)S!%8Nd|anb}9>`ePUz=F*n)C zT8;4B9IsuNRRQ~20;yu3(;P3ZESt^obRzDrqw@Qj?AnHa6iRmIpj2bQ zteR?C^at!8_@wowZaoCs61E^CgZt53qc8p@63~Lj?yN}0xWC52&QF_-OFB}FGoonq zN^~9f-o}V*XS>`5KKG`hF=PoQUMf-I%YNLiqr_!WG7QYIB23R{N7h-DOSl9qmScsL zS!ZR=wX<$Ek#$#jKW!++vpbha3sKn%Td2$|q>^%wErEk<`Q$p_HkZsMD~W7UDAVp7 zl7jfW$W*a{;k*W<{0=d(gc(Mt!|wnZ0ts67%9NEZ&omSMPZ)`v$M$4h+@O)7C1axV zSpR1f6b{t?dQqSIp*5Vb<2H=rWzlgwQjg;ljAMD34C2`FqxF1r@XV~eRjgDW3Q!Wy z#t9{Hjgq4kN<@zBVC;99paDFpPS2gdx0x7HPI2HUYu$}hNVVNsSH`o|TK8i-U27e! zEn^kpj(ir*dl5gcVHH5k{w0a3U7f`lmzTmQ%=H$`^_Rf*Ov|z31@C3%k-#7Jah8Vj z*il_Cl$zs$ym`l3>>^N^9A}ZoOm-k6VF;*J%WAd@A%9T2v}c3cQnhb^n~ltY5)d-5 zV2)-+D0xxQeaY45WA`&A9Vfg8ry37E)5uIx`+l?(#2J&U-PzV-+Z_XQ<9hPPEfxjM z5%Cqol`piF=-IPb38TqM2Bj)3anlhY1dNprY>rowky35%)+8?TA{G`DS0*SV6)iOx zRn;5;SYoB(2_ds`BA!q~fOcbFZ)coYdIAdL%ZzLP6$oCr;)1C9Rc z6m&{^)?OsI$-m4eOJ|z8DW)aW1pu`^uIP2eAT$iC&G3H?8tsVCPD;f&{u{{Xu)Yg= z*ah^sM_eqc#!2cAC;aC?zI8UO+QU(i7$clt#QW}sO!xAxg%bWN@_**7udsuO_a^G6 z=ZK-N7cp<8UdPf2?-v}E@ZJidEE%rS3UkV;X$z7j)!DwlF55)v`d*TRu}6$AfuyBakpQt+-*JfR(nsXL|0XeRc(|=*coH1$XQb_pk0Ooei+`i;am#*yz z{g?hupg-{7v*-^uW>TV_?4nCJG_PknxAUl;T=`t5_G+jwdt$xb!Zyu^OG%f#l?ac^ton0>9z_=?aCWMYkAOUL414SfxpB%EjGk zIvcn0{;$DmTUDOqCW5SJmLtBEBNNq(UF!%iql9b=DLiZnkXhZVUnNl}@UqHtfpmRl z>?u+&G-pqbq`UR&h`~FMLHn02Cm|S!yJC2bY=7hGSB= zrV!)3dX$E(x#p>uVKxR@EbrByzy*2|eU++4hnbIL2Sq^WMgFO3ZXUCsyqCww)8*4mi{AQ;QKw;=LW=h2g1yE5Q;4~XK4usBFV<7#hcq=u6HnE zCu%RokL?my8R<{yGly3hGrp$J*gLGp?8!Wpq&797uNw{*GsT2dz!2_*us2;4aaz*@ zc3>PgGY%n(vbSbp+NSVFs=NLt`WZTl&1bjL@6g%2M8pZ#dL7qO-ZbWYlf2vX?&JNl zyfhTUlQ)a)T0`doR`haW<(h)Wq_y5;JUdff*5b8tnp^uH7~}+kUARrei%aA`vGC;v zdH*X*>;J-Ik{3h#6z@X;{y|pX+gZVSyvRXX#MnbMX~lbzrW~=g^-N%E`&DGgzOOlW zo*@TF^Cj<}F1tihxS-mz(QF^pR)>!& zGsLADaH#@(Oanfq02hg2k)Kvi8^v72<^DBV?qxdHWh&R@8gRL?UiYh%XX}WwRmv+g z;0gt}QUk73fRAgy#}(iz4Y*1HuGWC772p~TxJCgsYQV-|JYu{*v=`4OlC^e9oz#X# zrH*ea`!CiBtzkNAqSM_))2ja&6KR;SGd&l<&b7MoYgKDLp#h&zfa^5iIt9311Flzq zPinv?72pOuFO#R`{l$=*KZb7L>JN%me<4!dE6+)5M`IR#dT3ofbRj3cG)SyK$aH}k z_6vexzkm}z5H0xN!_6=G>q$%wK9d zM-$zs65SXix{(u|6(s5y{*?4?13#CWgM$X{?eb;|!z7)eCNRlA$oV%%EBUk@hEFRz zeMSQ~&@Tk;Ux4JJ<{%hQWq~}+QRh$s*Z&G7po}x@-e1@lH9>SKrT4~W8e%h!TsusJ zst$-7k9q$ImN(Bb^!fJ(48DIn>snTe756qBfN1CyoS{1CPoXUI$+w8QMZELf< zQC6d9!CLT+u=v)d50UNHa+S@ILAKh(lXUCU*0WlFbsI~L({`Zqjm}R?7iVr^7^~B@fnp=hiDr)m&6<=ZpGed#dJdgq$USbI(GN!AjB_`DJ8zHigTFg8vG3Fp@NI8{RwQI(- zC(o5Ta@EXfgrjaDi`uU#q2Gf!CuFiPrG0R*8$4~X(AO7q4PMR;C#Iz`a_gNK-`D9F zk5KykWZkh4Ln8YWi$B5Q9U7CLh`|;SZd+u`L1;>Fnn*R7mdkq-$-yMOCI(aV>o22% zMy6tl92ImLhS$jEh2^NUY5FOsFzIutHT5RobO#i{J03?zGWk2Pxt4Ng?Rv9LSBiP) z|3YKRA$qQrjqQVZ*J+%4qn>x-FStL;!1FZsmYtb-kuIhr)^cS3B?b${$doptp$n44 zH?VP^P&TRQ#-stMi&&}e*?P|}Zrn~Q`UAM$&l!C0FVWmFpt%;%8eo=0d52+JRyC^0 z@>@0C_BEM`*BJGRdXG6gNe? z5D-`{Q^++fdYh1?>drRdPNr0@Ih&{^+nT*~Gz(}!lj0GntjlJ&bCuIoK(#%5LyuHy z@AGi@QDrDtHq8X9(lf;-^$U}veqoyQr=q<(>oSB4Tax}XV0~)RjN&WXvT=>K1XlLx zKx($700@_mZK73FQ?@DVE-S$DTWZTh>ANl6Fkw;+)JAKsM6xaE?FKfNYc0>#cxn|q zW!tjex#(Y#*?zW_s%p))X5IdmX~;V%$&%P8)!E%R6dSRsQ9G66x=dp;oOex?`-j*6;3CnPdOE|i^b;vq`kImOP5Zz zn{BBe?tKB%$!fO!U6GRQ-!}HJz+1D;cK%?iGQG`+%RGw94D!I$33HBc_G~)5wyD`p z92~tr$TnupHL@Mb9`iiW(!sF%cpk>X!Ie_P=^R|Kn(DUfDePiUX{-HbF;ox_hYn_X z-59U#+70bNjP0#}-2!?tVcC4!SFU15DoZm}xd$xg@kHnU9-DUk9`K2xKaUv%yGusxJJHr20atn3Bdsp==FP0ru|l2_jjc*Jma3~M6+;lOCn-_2 z?hfOu$&ISyoT9aPPP;8CrNwxtxPlMlRa*N#>Vl}_CQMX&vSZ>VsW~zA3Zw{Qf6vM@|bXTZOeixhc8T zekG%~lIeB8h7Cqp)&ZtL17jQtdneV$*8lxPbx$XXt9a`I%owB6W{B%O7INj*+Ha{P zsq*yNpZQs+(E!o2xz@%{r{>|QeDEMc4rAR%^w0qu$EfW(Jpe^Oy1!8R;~t^7Oo|E^ zaCKfhWUZAcwJDvAgN`FIC-D)PI5XH1uP7-q7`FdK*mzX|z~5qAPDk8%0rUCVgF#^g zBbB_Y%3uz@55{V8?Ygclr1AcNNwh>wqJA~K)H10$lT!1db8>CtjEPIAt(&PM61<8{ z2;306+U_xyds$ogA+i}X-C`xg-n|eUMkGtlX>%e_;x}SBVaI~SXR;4G&@2iu(~I@sh))j?Re>PhK#Yi}-PUp6>y}>sAM7Tc!^ZAvTA-NqD z%;%KDbF&((rM6FLr`mjqEl#$#KTjK(McG>4tYA&YHzn4do)wNg7=@Yeeu+I@H{l;| z;igzNa~B7OYF)D%mV-%uCvdq{Ij6isGVAzDV{*l%e;<~|{xW(MDOfF-3Mz5}iFbyM z=pb{}Da?DU*{)1Wuqbu>U4o1_I;=zspCR6x(c2~p5&Y^~+(esbL`nYyM8>o6#gBne z;~rD1$P3`DqzXlR-ARnlACtSf!)e=bRd?n)sykre#+ zAF<@yT&Y~LTqJFGj;uhksYu7ONqz5nChAmSO0Bw`yYt$S*KJ>m&3+-q_s8C)%z6c- zK4h%gIW!#JZXha4nfh#5^+67NmFQ+A+XnhA@c|Nlzq~$Vy_}U#ri$uNZ8#WOM~EOo zPHEDPcoydc>M%5u0GYXIrLS^1+slheK3Cq9@pQ5>!!e9YXyOu*>5(4nJk@?Xd&}a2 z)T~fmNTZkhfHjYxFMLNa)A)kgiE|ozb$$~s#202BM< ztzr)|j1gnw>9HQ!s~RyL*%V_vx(ljtXCHua6u!gH5EoHmMdT2G%nKH4#a$$J~GIfa& zT4)BP;A=Eo3eEwjF|i7*CV}@Pu)TJr6fcWa zonpayYJ7@!h*;KUG55fWL>=H&;3>JMYE?zGYPOQiQ)~Nn2i!M~&)1aOVsTuPoGQ1~ zc9}aajw=v6a4j~A-3TD#3Lf@~i0WKiWd!e3H*K?AlH6mVeBJS16iwuLoLwWQ_B5@C z^zJm+w}`zdj-$Wx=nvmZ`lOQBu&q8yf6qaBzi8m2Mc&>J8N~wqqnCZ?rM@pXn2Mpt zen=3B-d{x@AWsS{r_c=J)F+O|>C2-}@(yf>=`!|weAe0!%o#$hUVTYJOX={R6KP1>b$+Vf$iYaX1KB;}Rw3~1e*&1moPo+8ZcSDGh z_eLC1hV5c{WHQC^PRP$?OC#I~Ns#9K!9@M%tqE;&?lZPq9qwsBH9UsL=09ZpY1u_@ zH4mO*aTTz*IB`D5I}#?07SlTzAz7M44MinM zqc)|iwwQkynApzH3s*tPnS-Qj<0}yBSUBUib8>%^SrCBN6No}$l!sGZCe%_wtpb}G z;u5m1+DFkz?XGfUseKG=7vRSwa6VjNv(nlkiW&s9mIK=fpULWD4@X%dm@qhnzN}iz z;-aGhTfMXo=^yENJap*Ul|~(!Z{lU+R30*72YTo36dLk(&PU+uVagRe zqUveITdP=SD{qlQ;*{z{qBGI49i=@Ui~0|69Z|VmXS`NvlU8YqRv9<7swi5e9cq;} zX_a>HJs-9e%rIK}WL<3<-!W#tqrXRB8xI@o0Y`{i!SYZYLjhVL4h5}Kz{oHe=y8ZV zcrw6nyoGs!sOT7B^D`(+aO z^jH*R^w@$PJ7hd1*{}HxHRnV=2f~+W9D^edYO825K1$wjjwjsd$nY7VCM!AqP*2p< zst)!X2e+kFtT31=hb#LMVumFWTMgNat*+F_swmZAKP|FZ&~P-!;zqEkSt{j|K}61i zK_coS(OX!9xoFsM#U6L6G5czvThr(@PW_DDLz`_}@)Zd$Fy*=!51ag@C1y*Ew?ugJ z5Y9*HT8z&d>g+P6hWO8Zo*B(aN?|ROY=w(rX+bm+&In)7&In&n-U(mSfG;Y*%^GmC z0(?mWzN7$~HDI#>+@b-uD8QFBfCH;l+l$^>OT4?zRjs*0rN2|2a(F1b0R+*eJ;bqM z$N8+9AGlZI2i5S_ysv;t&WFU-mppuh_5b19$3@&O5x0$txJ@E%9T#z{M0|Bz1Ry1D zN9_eP<|rER3x~&CMgm6)AFviwqIcZjq^JXKsEa+=2rF+4V z>c@gdUZ)8DQmf&B++CWe?ow29w+7s;0QYFXJqqv*4fuuv+^YfiD!_djaGwI)uK^rL z6^R^+*APQ9=M=0j<0*U3kxgjuXnd>YWS)y(r)-rag-n^29xiVnV%^0Pxt(1c&|MYd zzXb;bwn58obpLZD32==m(gOVBAc-7r6C|3MaPr<~Ever7q7~jHFkr~JK%02C-Ddd5 zLq(cp`Y(~J_D=whvn#GeeBmP~j={EnBIKXw{*Tex=oI$NMeWsTULRENLT&G!faxEH z%OZY`PZjH9mm48brpVJOH1w4@WQvo|ar_tXsK0@>ych;wMsRFCy_(}Q*Bro#$p0y& zP1jF?7{Di~W+nWe#leC+=*9>+fw;=?U3%*sb)bJ!$aLohyTmrG?y9)W79rZJxxg94|wU-K?2xAn8B z5YlbyH9YI}7@UWk`Z+P)^S#>Q?_XaA(Yy|#|MygWsyt0%q~K`u2XV&MsPhF&_bcz< z)AiF$|8tfh->AZAleK(5P@V4ws&qL1xmb}85P6*kl`z@u_~*xhy*XYpOW25R=kO3rkd4K$fa*J3tM#+iIz*{TGe^@}c(kIqp{FRhgS(ldUg z{Iy1-q($lv3Mi8@UOQ>t7Sl&p)<&?lUbO|add~$T@NI_ayn@5yKy;%j}LzP z-=i1Dj$1yy1Mb~~N%{;xkptHL<2ua~L7FEe4Oj$}dvFLmm$Mn@CltBLe+rW)Qy!41 z?+RnM$I|WrO?EuVW#xz!{xHsJ;04f@!Gfdg;=7R-;y0@-VGR|FIfE_JJnmlz4L9Kr zLj7*dCc?uL#9#ZP0n_`k)o`x-OO0aln_8f8fO6i#i{{92aeqCufn$`~^#Zt?d@%HGkokoZ!>NXE zAo^2VjK0(2yBRrEO{I!Y6iJPIKsWLMr3v1prQF>r#kX{dZz)0jpawjs01s)vLkjS) z20W|^eH3NU>MQR(Xz|G{?|~3kq-cJd6-|AA*%=X^%6lO@ZsK*+{RnR4AfWhY0xswC z>nAi}lgg14{xE@uULZb}7{qV2SbJ$6Wa<5uE|0gFOZAWNSKkstKc!TzJBSD8@Gpwt z6wA<0z?j`p=S1+z4JehHS-YYa#c@IUdtnyNipzb<7OiAi>3D<^P#6wOibHgyLRVH5 z6F9W$ee7w|j1J6UMiz>IA35r+G|LlTy93qK{y@#}F3a$Nh^P|xT{Uix=s|cy)-7?P zM&+N$xc!cvVufD5ezII{jR2Yd5IZa{7GQ#BbH;ReLhIEL2)M~fBwZgQBQx+4@P9dn zyKznb_e`4o-?P~D#!?;jzi+AasPJ&Xng2LJm5dw7N6=)49>3w)rq)&?ukBu!>2*o{ zqZpw_q0-hbMesWYABEXjABFiYYrAqe#KR^D$TzLvh|AAqBEKe&XYlCy?LQ5}`?19b zT7H5DuWY>Mt?;DEk_k?#JkiJm9@C@nn3@~k(}3?O!1p!a`wH;520X3+PiVjs3h<-` zJgERb(10H(z*8FVlma}h0Z%KyGaB%W0z9h$&nm!k8t|Mf19{9a6@AE+lUS#*hF*l; zP#F4|s3Irpn@7{;AO;{)XmUxJJ2ZxE{9&zB^}UgHxcr?RSO=07#}&~V%Ept8jtzRPUouYI7=G9GVuMd@2ENaz zutE9v>?J-~wkEuc6*2zXXr3v}`{774Oc`fK{A#(xE7?-j@OfO- z)>+1)BXwI_j8o3lZH*g$BsqRI@O`?{Azu@%@pUjK)B6EYo3kD-;iOF0R`iY8mX9Ry z-+@)l^qz(Wx43==72A|_hTfp~B)0FNUH%+}CkOHHKMpCK9Cgmr9rk{W8C>_9-*m*?5~1#UsYs^oYC49h{3FVh)b?!qTsE_(e-r0ee^mUogcRL_}o9qHC}^ zex$F#>mX|nqDJXa$X(xrH(Bk_{va(r{a8M*_G%+U8ih}}rMhc_17kJ=#x!`|_iAr9 zCc$ODZ?Hb=y$p8w3OLIMwS-!QhyNBX%2nvlu&Y7w#BFR^k2pB|FT-!DcsEP*bXFsJ zgZmNgfJ`77cq%4`sqya^3x;a{8Y;GjtqlG~3KsdUo?c2mVmqdf1#+`WH9*NXeC=HU|EX6{Wx;SUWqYAYvTE@hn31 zcLVccPJ?92I#TI-DraZ%cUB^Xj+F^*)J$P#W&h@JB#d@p)}3n2W0vIfwGx z0KW4$@twqIVO@YBd^y@ACHPk?=|Hzugl?OXOs#6_rfBJ#O|_*XQ#Z+!n<1)A6V;{^ z)k=R||3)x|ai4r=1c z4pe98H^5I}=+}7Uhu+0w&Ztw@Xky6VyJ4}~UQ9Z|i&{r`Q7H{CX~0XN?f9rbNBap) z)uESJ5o0~6{%L5eqfDM3^6x)EosT9c*zUc=M(bAZXBM9kelDVUEuBE~dOxCh^-FpF zZB!C20sW9yqPHg^QFk^(eJvXG^@gasqEX*yh`Ki#_05K;2cl8;HALMXjrvwY)PvEe zhZ>?DPKZYNipDSp`prS$)BmX>v3MzQ=vAGL151?Z8?IJuJ46>PK~0<*n}s*SZnW&EGLy#as+37{VY;BE z=y&pp^)y57!NQGM?AOBgPoJ`VaR0P-N(SynTk`fuYJ-wzkYt~Q229U{U+^Z*JJ#G3 z-cPXDNbV|YBkWWxT%r4I8!r%FJ)imL&w)jHzKN%6;ra}R?`vd*Vb2)k)f*JI_=~JN zaGNN4@OA8oAn+~%v&{8);?udQ4mrBgh3kRpw5YW&T& zS@OOvFE1Jm+nYJNp*>xyJ*1EYhpR00($Jz;-egzd#unL8r6gR5Y`Jab$lj`9=E%~9 zhBT>$SpHWcwPLx`P-SGf6I%&-ywvEqH$0QO_hUMokM-^zQ(-r@?;$$;igD#}F?B}a z^RbR^X?Q($$dfT8t8Bg#;ezmP)sy9J)j8^J)vLDG`WCMIt$m(eYu}(BeBQe8zE#Wx zX!;j&SxivnaoA~zMNK8CNEgk)Uw~A5x0J>7%CM!4%cr7wx}}uW!r^Z&q|Joijfpjl z@5$3st4%T}du;SfN7g8M`b@{}#?<4qigKBeyw;e8`L?T7v8|1mAC@;Yaz>H{5a-0Q zRz>YJA&KB%59v_4kV(+W5gjTtl{>7Y>^)!yCPWC|FQaxF-W*A}@c(SU&Vl0#%f-tx zEmCnCii;pi+d);aFE$n{hcyqtmdz3?>*!q@E(n-x00elJPg;B-#tzz%-Io4GtW^1+ z$QD~J0SD?nD=Qmvq~RvAZd;OzrblCey#1%$s8xYaW)msHbo>&=aYt+lg~wfT#9|!1 ziKE+>O-ZlS){P^@yb9YJkMT64Z@C`hwZ;y&>M>psOCB5BQJ<07sCfE#?rnK(%>Q|8 zk2k#)d?h8I zMBW%90L1^d+whhf+X?^gHV!^d_a|vw_)#qj9KOA3;y&afeW)C47F1oa59%ra{`qx(Q(rnEU}tgTBsKV?;B1Tw!kwk3{K4^4E2 z-V1h&MKsse^L@#YHk?Xr8v={1{Ri5r*zFggcdlV?8U_siPOlMu%WH&lq5R$)!^J^} z@z$agNKR7;(2C0UUSq!V!hDE>WBf%!4;Clm6V^zkoiHZ}GJJL43c#G_CrT6d3wI(t5ipKO1j1SxR$af4GTPqblb`O_8We z8=^iIjk>HM>hdP(!0&bQey`TBoOVM)+KZ#bT+$HrQB}+zko#q`{&g5w|6m0BJCbfr zwW-@QJ*-f}{^_OcWh`@pHbpHM{p{CIo4OWA5wz;UD$u?JBQWh`kn@RxtEWS$b^44 zW~R%8?s|)C<$F;baQ!7Vf9X*Ivi5Fr{T-R%Bqdc7%~Iq^^5;<0C&GeC`#%f*VL>0q zUI^|VUIN{&JoNKDJ$K8V%? z_rfW_^6rbN$`#vsW27l$TXy2$;66svm}z+XYTKN}`;iqn>l7JC;W-JZzl2dgA|hvI zkI6ICnCDW-a%JX_xE(DXk=$J792!vsDpzcD)uj;F^}3 zY_t3$F-ETKCZh;`DT-h_!0Rky-XY;$5>Cioin@<6|7G2?gSzo;8mZg%S2E>e$0Az! zi(@L+b@v`Bb+1*j3tpl=xGeu&RMDJwYpljZNzq)33_02i%f%F7*h6IG3xSEJ^9 zqLPBQ@HeU9<*Gx?*j(;TRA-UcsXqYH#G0oyK`Wb0oJOy3-2V63(FEe@YkYFhDfQrM zvvJi5S??aA?3D2;x3pM_v%^_+Mw~BTE)KNE<@)8;xLm*N#^r8hN*<@=&2SsR$4vPf zPe&WdC52*+Q9JatBT1Nhw~*}dk5Rn*kD3+!QE}g+l>PE#OxLF&rrxpET}~L~0|J~) zBC9#G{(=KnKK~g9%cU?%AVDcVbi|M-QO`%Co^6PFPDO!do`X7B3>*{S$i#iF{LidE zLMq=-ItHfus2FI^Mi&e9Z$Y;{Pr|r%&s!Io5S5R@#mbs^YQ&mIxcE@x;zK31jFm{St^ke(I0}%^fP@0L8sI8G zQUj6-kkSASbkrZFHeCq%n#vXf=C@aap?{kq&N&sn7Pxxb`xvl*blCO0eByN82F!zx z$WuHx`VJ?tv70HNMCf>>{ZJquNbQ{F_>b@gR3zCQ?5g!>OpA!H)c(7vNy=qI8fM5E z3upGO!2ZR3ynkU2{jY5N-;V{zcQ6N?L4f9rCcaB=^~ZRV#)=Cx;d+;a>oxeJT&ZO0 zSp=RukTm1oMhcbpQX~64u&BAF#1D_Mh)2->KKkN6jw*sNkL00=cq1B!PcK~#yNJoB zbDe~D1?t~a|0cFR%%Ojvsn*ax@vw(Rc`fyT-uTdGfN-|zPrfgvu(t1bc~uuXnS+=;{)04+fWe1Q?GqT5CwXIOzjUJZ z{KARd0mIWnrZb5865f?qNfaYxI)iABTF(S~;I>sR^4qTAM7{}wbD3B1T8T%lhlppb9dS|K`t@2F(au@!oG<&n7utNq&-ozu zXOeOyS~6>U*RUERpNnZ8bK@FUS^q(d?-_XtyL44~@+CpVzRrZa7X9V)UR$^b-$%kF z>HgDbQ6k}RAmKj)2BPHFLSx~XdM#kFfBDt;PTj#uK|4^N@vx)LQQ`wF@Y)WG^nKG- zVw3lyB%iEh?Z|bB9-klpw?)so!11d8mQue}TZZh<#=<)^NZA5U$kKeog{GC}_&U-x zV);?4Fd8eziYcdBjq@3zjcX>4#xj)dIjq`_rHD55Ledh6?SiDYCYNJ{v}q;0o04ii z#@Q}}fAt^2kWd(o+n5fIfG(d$AAbaJQGp+A1h*^jcN)PR3jEzh@Dv4ptO2|M^SgA3 zS^qI+bS9=3QN#y7DeIscm7r+SEVfDU+-42nfU;fSYpNSTqYc~jDA#|1H?|vgi?q&U z3Qvz%P_s`sY%P=QB>QD#?8ByZLBvi&t-p>4nsD$u^C=Is^$lYq>!Ir zu9tVO-KXK@MYYL`gMyTw%3|f}H?HP+Kds%}7-{)GjWsl}I2vn;_B2`2{e0xHQ0K;7 zW}iSmBNpUHA=bR6$Q#biyWW}9p{9|&EIBfPE5awU>r2otG25!!!L9yx1TXCa)UTh# z;0hJmni^BS`p4N_Y~$d=!@8l{UpH~x zFKsFRq{-SImG?exv+JYH0j=hcn!-nLiryDQ-dn8yicZCbgccCK1X~g8!rHTbCJYO0 zJSVE~@|QyD*MVQ&f$}^1z0G)Xa_?rF9T#txnzxJd^!WeR;*Cl@<*4f$qCTn0ourGIq{=O500+Kc4wCp&_eI_h4*oLcJ75xH zdBs0T?&RADHDz)$}}^g`Fc$pG`^a+BaaoF}?w+t()kl_W0s)x1`=@>swMM zO_EzuvuKHb7b_~58%uQ?{CiN`AO@)GuQ9^%5ZH02$=*D*^b(qg-=q}XBN<7gHv(sh z&LcF^Zsf}P9IeG)kziZsAjZ0Z(9n#^j;8k|NXFi-+ICCEc&i~nagzTEs|%g-F3B}; zjJ;ji7MC9p&U;#=7}v9%R5kh47<*MOlm<0$18z{8JPWFdV$(=xbRrj;Mp~RoI@mIshQ3R7LK|xDVyWxi;6!J8 zKn|AwXq+QywsY8$u1e(X1Jf6!(&$qG)Q7&W~w zf+(-igd^_*W-&EE%c58wIi#tOO4e>#GO>D?3=fNJr;C~FRHv$$@F`oad0-O9_l5C% zL!Xz;8;kbWdtYhefR%bbDQ%p4F(0F6ofv-CH}d(L1Hk>q_f6)+q#g8}aQKFVa-2Wz z5OhShF5l2J)ufTRP03nyhkx0}@GN($F=zYmJj^l27;|MjY(B^TDb`oPF{*8~>vm{3 zU{|04Dx?>Ehgl8t6W8J{3@p(E^BG%?1I@B4`P%P;?C!=jHmE<99 zw*ML|RLQ~DdD}phmbLwxY~E{bGu5+_%3#-=aTF^5?xrw0wIcBHvC{ zmVxP^s1o@DlPmM^^(a7!&r8?VEr)p{VHUiHv`obP0-xsbdH{nlQ=WPg>bvfVep}{}E?+{Z8A}oF} zhf}uNaC5n+AB0YXh+#jSh8*g=aEI;(S12p1l%#X~qAd%o>0=gHKAcv4UDQoS(9mk2~pN$jCT`}bo zwt~v~4C53a;+1=lXh6`JKr~c5b8yBO-Xx+L?QG;l4RX5In6yV|8-^a5i0p%^GsT@e zs5niWa-?7VMAOehNttifzOV9p7hP%I6~eI4J8(whh`H|%}Zl0kX0 z3t7^42lc4-_tcswN&Ryacj3KKr!}0>JS5FL z%?JaygaR+wp&#tQWBp(WM`ev89bgTnBsOlGzW6L`S-^Qd-LW)P> z9T+{Hkr&B3Hj6WeDkEH(cS(PVP;gy^_iLN^+iw&CDjES5#iyzozyU7dJ*3?g=E3(O z=zU-;%lsgM>q95N^*mkjyg-(k{4J;o&!6|l$gI?G57-n7tx8jaxM=WsDD{hU+t8zB z?SCN6$4#5B%@5h!FEKg(9O=QCw7lFxlG0CA?`-d{A_@LxhkaF@JZyqa_UTUcDSY;8 z00&5b^)es(PcVpI#l#DEK&RmV)86Vp4*Z3czI5#Z%#lk>!?{p$%hw@(4eX?Ae~(1U z;_n~Omd{ug-lOvu{^felmT#1RSJySK_WlWtV5-WP**VO}S!&FZ{wpYH-n0gh&oT0) z=l>ozLbVM$H#UQhwUkbXd<$lXu~LxCmxXXam-j9kakwGB0nV1wD1V6J>c7Q^*>P5; zWW+*{R;IuhK8%bzVSIay@$Jb`{ug%*fxY>$TOYR9xXF|J$ z)%EX~RUYj6@39{1{|YG+;st|GE(Fw_vxn!$aO_FwyR-J$pk&GA)%ohzcY)WDyyC34 zMLDZeZB-v4&NA9?lBpf@r5X3ibxzWTfDGn5WROn0)^9M?>@IldL9+Zy3V zM@+zv7HPU(6f^Yq+2N=51<17@D!JAsaxG`0^(|1h*CQ+|_fhA0h_ut8$eoa36*@ne zH0ykv6>`29HXmu?sM4x;m_Vy8#F>}2M;g6yf<`aajb5x~=MoKAB6_WbdrEO$iuAr6 z8r7>prrfK1(29|}ZNhOYH|aZX*snQyvCUJBik7yG>~&CR=bRJRpvKfYk>i~a+L5vy zp?(aV{AS?)N9tT~UiQWcqE{3}p_rr;iXR6GMUlscmqY9Gq0lcj3jJUrOxF`(dSrCI zU``s^ar`7$HFgvtsu0WReF8bL<@vB41$&e-b!H^l+N0N`CLsHunX_~=XGNMhQ?-xx zczX@L=QLY?LE)?2*3-;c-yR{ZEefQ4Ajp9viq`cy)d6T2Q-nNys zOm z{j*>TmnPaydZKaQnA%^sGm}Hc{2wtkZz$2ii}I-YK3$d~azDi+O*7`;QeJ!(R}LZI z*rTTQBblbtND|YcG3$pU9RM{roW7*&uiv8Qmyxz>^h3koD7mmOr7~fYjx%QJf5yCb z)s@Rh>hfRMqD1nR?{Ozk)^`2Bf(!g7OR#cRHtzq8WuloSb$otY4q8`Sd@~hykW)Mh z;aAiFNcCNEbv=7uTQWcD^np13j#B>%LoadM(qPZ#aHD#Oq3%60S^v5fee%C)0;Bkq zD?ewM^5#E;TdpQaf>fKK()>3D!t}po@;x&a2fY75#z_-FDd~M&0pDl&zksY&{@(xTDZN@q<5-I=XQ?P-xPyUx6Muf9v<j*Ly_ozwSZZGtes*7BKV4ka&Q0PYGs9V0Uq+hLS@I8%wd)|t z=1uIC^1++l9h@lC|0nP9;hituD3G)s1)lO!hbwWD>JP(LIIr4)yOwVgn>HvbC4}aL z4d76VsS5rMD*6yDzSQ77KU*RSQtFZb5xW2bsRG|IvZEUNF@0rZn}bMcw;9BNc8<$! z+>*|bsDzXZUp3tQe7o#RsCf|giO@jQvq&+EnR3^(&6HGWg-QjwAYC072d5~BX|iit zb6b40@Y(PVVE@%7tV~~~-&O6aGHr%uQ9`$~*SAer0w%!5E*cyB4fdpX5PZmUPf(b( zBPc>@M>-P7$~L2SSM5^}H=d&BS8->Y|6-H+ppnhZTJ`@p`wsXxitGQq*}dJpB3Y+$ zC&}eRky)-twuFrf22*Un24kCI%Lbbcb`louFeC^GhlC^$Fac7C3C%zVB=k^1fF!gK zT1-d>L<)g~^j~^2|Mz`wX75h6Q~vsVbUX8=w>R(2ym^nls8~ud&>ixI(tftTDZZ^^ z7s{&H$sUz0D9`8NZ%X9*c)s9%H9?s{#sSi9Sr$Db3MP&oNa)1bLV`1;C63RKF`rNu zo~2Gi&P?ZWCfPVoE686~64VcPeBvVqVOjuZ{?uYU z22``7+Z|lv{aJab6G4+er34MeO}D~eZnW~C0%0&31!aE zXaHG-7FIChhj&rmd;xQR_UjfNvtZh1_kEe%c9>M$PuVtS7F6d!%JdnY(}}v3GSHlf z^T^F6a^Gq%BxLFIADnSy@eIt<5lZiopr(f8gmc83kj(k%M#hyC-=TTAeIWH@-!7DC zO5s@>fBJ}V%ohd|rl^kgf)RA^WmfDvc=QZB(l`q53+e~q}Ld{IE%1qf-ychu#otNI{a#@ zG5G|YJi`4-aR0?3FIL0-b}&H!OY4FL`UQJ?oH65eTE?u$szm{e()l%O9da+|}6cgC!$5K9Ff$a>tv}?TF9syHc zsnx36O(Ru#Xn}QRcbJi$dMxs!+>X8kP0P6JZF36QLRMvo+9rx)RULuH+jYRC zo!)1`-`x%V0kjxo_h#5$a15#e^G9i4Op^t~i(u)n_I6%ALWVGX%=;1}?tv#FIq`$d zTH0BCJD~s#)P>5*j%w$VL2DhEL3N-1pc08_4B#D6`nczv= zBeZ*#_S_P8-fNL@4LErVqpWHm3Rq0@I% zw1BMpc0?aKv}-#;AI72JrvWoKf*HmLGdTYXRj3igINC5Vo;qGwLk@=Sn>tHy13LYW z(&_W0)90eoH&ZtsCREemLNzVHr`Z`fg1_;Rr5J>LDcX?|?I`%~Rm1QOF9**tSq%d? zj1(Px6SNQcMt@i6?@E0(udLtDzWhbT2`4fl2&S`A#hyvGruUk$ z(CayAOM3c@iC)jv8`9I}eisZbgXZEsY1Zl({C~bFJuvrG4!Zc3^x)jb*@+DLR?V8l zQ4Y90J#$8f*K^nB(lh#|iNEi(Sra+%JD*SQ-M7H&`Qm-)edgZFi4VR%J#Q|Cde&d* z$E`d`ON^Cy&ta=>KV{%E5fH{>X1&P3=OZAj%FOx_1GgGr`8>7==T^QQLBd&|V956) z$jP%lz>rrX$WZZYxALRNyR3MMTX`e$9$Gxct^7Rl?q57OTV072m6K1We7fY*EuV?< znIxad@|hx^d_ul5CcR~6YPOgPShSf{sg-6*NS29}{Ir3o4gT5Fvf|f!cFFT4KbSL` z4s%8{kL=!ZdTO0U_mQJznjIsv5feq_MtGh)@LxrysmrlxGaLfDx;IK}@XQpC9S+q8 zEwbd^XqBFttIgSNocF8yd2RwhIVI28l!fuCY|>4+)DLOpmJ`4!#im3NYPe(6;aX20b}I!MH^;xH*5RV2P?U7x42l7eX*o2KXkpj&gx9!bE+&Oq{X)oGhPEXka4k~e0k((Gk zj4x6W!@vp&Ud+|gv5R+5sl`K`gG-%Gb~)|Lrub~i4YLR<(;mmU#7!>o9p}R3Qq?vR zV9tTKXbE!!rl$4T@$7Q9%^ho{Z{=5*(YN9-k|0(ldP^|Ddi^(6D`W-+)TVXzG&ZfZ z8AErh9>U}Fca8q8#rNTe-Z@q#&sv^5VJDS6a-7VdunQhecIA$vo0t+w@Anvi2YH@U z<9a))e#7EX%BEFtHUYt06fYod`KD6|KT{t`TrU$JUWUQ{2{WVGx03iU9>ww=UR|F3 zvrVdAq7Leq*kX^T6Rb>8lnsz|peX6fPr;e+c`U;vJVIjAy8X`OE@$BZO;_Bk??-Jx z-h(M+Sli-m0_z-XR+V63#C4@rr7!X+o5x$fJQ&8tQEFHD5@#X)uv>8$=0j;f<>%-y z_?gSA?1k*Gtub>~nPa@V2*X)3Uw?qP&lS8de_@0dPK>d-f)mYo)yPQzWJgYx&nftv ze`*XC@J_=kGnyQyYNUbhr3^e(%#cZDS;-=}AkLTEJI_j=tHQo65fhnWQ3V(Cj+P%D zOse1m;80Ry%iR13ydMSI*g(QzOIImIZO_}Ut&$lrp7v_R+dvcO-$6S z`f&5rz1{r$zFpDgc~Pj8n_DS;#*HGr zZ@vU}1{aBccky>=e@?z!-h4CO`4L^-CG?vg>FcUo67@;vP<^lLu+X+?9%v1`tI9~C zq#{K0Ay9GIrgq3kUMv|8YFDX`_*tlmkF!xxhRx~2Nt6mc%qY{;so1O}ODa-^2*2)- zo$IqZi!q#~s8&}GgY94UXFWQTC#y#Db(|qQFdnYJ`bf z2oQpJ$77Zfm`so}V6gUKYN){EPl4&30uwj|CTa>y$P}1(DKO1aU{a;P6iUIa@wo*z z-!qt3!KL*xsJ?nORgX4N?#(v0ydwV{rZY}Rr@#@wDI(V8mhIWGOOsm`tYXincA=%`&Q%?A@p|L;l!Cw^iy z8F|Op{;o*lOkNJIp1rQb-M4X07dCG{%g1G(@9BGu?-@bVK32ERIHIj%PL$&wB1G1f zRMqOMhJ=~PYPaDE!nH`{gGoP4V_OsJ%x8(S_>AqW5Uco!1;Fo76 z^5wzlxnyI96tj(fFP~hMp>0{rj;9AcQ+f8_9bs{%BPK;-QrBlLtg-8;PIur&Q zLC+OWXtl@DlI3=<9v1Eba&OM|FyBBxZ-%=nR*Db-g!~*-SwKPil|QLm;tbA>%WdiD znpj&G<7+KDxEI6fjGQiX*Se@ZuJu`>iN6+&TXVd98If){KyGSvG*P@aIJ-QF=3(OadX<@&5m*#XfxwmnKZOn0_P&a^%?3bX)-~B zahoB;kgrQj6F`{dd~Y29U~6aHG} zm9nON%}ydb0rw=SY_hn7A~H!xxiI1FlLM3$eQKolZVGoZR9ME(aw(>E698qWAACB_ z%FdZIe{|bB?@-RAeLebR?xb(f35bnMr1d&>VQZ zIi5)@)4bHP)K8B`W2Qnw6wkVy0%~-ztwK<^|Ecd;n^N)JwT@RIs9x_T&@#A&kfwRI z^t%er!Gw#)z0Ji$oI<&?+dK?_opGuC5<~h$CvLX2OS+|=gg%V0c43VY+E}Pq7TviT zb9t=UDL1LgUk^6)aly`Qi#5mBmT0h@xC(AYtY9+_qhrTac$*~;fPj-08@$OicW|b? zyTX-R%F9mQ%gzqiZkg!w9xv<#NnKEctEXZC(?rIMs0Ars7k|v?`WSF)dTRAE;O95O zTR1@RD`-FjutxQ~8n>+K*FpP+vFPGi#&5Bv!Q!2LZoI3nqqvu7B>Fx5*v;{9BJ|cY z$Md@ioo=_YQED``2Fw-M&NIQU)BCu`wA~YYH_SbFJys~&Hk%E-1GHL|ivZB6M-heX zWrG`$mR4?@m0TFRcffPI)1rTp-v&W_MsKpz?^M(wv_rtmT5pM_zo|*Hc}!goq*BYY z80tnYSI|bnC)pd8BFj{%wb}8Uc=&u>(Kc)8Nc-B#@Y(ubX#(n~|L|X|P-AX^@Lk!f zxK!O@ywZ9|T@`lP2KyEueesQJ$cBZeZc`~mylNu20Z1i53H;!e1hEu_EYp&GmcAnx z#&E-m*ehskha=D4HP{VbP3&P-II)qZb#8?;^@td(f!){zLM3tuhBia z+G>4|(Vy;HO*AK-X1rsEFCy1jKg2E@c9Hv*<&-|Hk#i5o-|1eq=`|*%OHDKrK$%FZ ziB0&Xr450Vn~e{1wA`+=mnSf0_SE8J13Md0OfzyTdGgZ8)jidxh+7+S-rAV+)*a-$ zb!R!}v}&9=6A43&wR;U#FbNrGzxvAG=q~HG2>v%hR=Jdd*Jfz1x=Kk71JVIXKCuBVgMBls2V_3 z1I{*pvo&CY0k8vdkB~?I2JVM&K`+-1#IC{qQ)xf>h5=t-PWHn+aSh;lQe!s}7J%9- zlL#ZEv>fv*4RXxpU`P6_$J+DInhtpI?a%T#6_?ed%PK0?l2L29El6*UoikMB`PYUe zId&{galOrHNm+NF!e*)>13a&y-RGEgpCi1h16d^K@1XJ@$7W00mh0GTnotE#q9(Ae z#f*`GK4YNOJ1j9L_7cONrr(vhYFUXvu=_El#M#3V*esjPYx$h4$z;UU4f{~j^Y|9n z6tP=Lb4?S@)noZy19-0nyw3pMrvc{~z2@V49Nebfp#l4Zy+XoChP< zUXg2tV%9F0iBnhF%RU>I$MozEZB0-BFsPQ$0Wu`A&6CeJY`kiaSY{a^lqkC1HY`a~sS1 z_vsF*rQ7F!Nw=VuZeCrw0TuiV6Y0JBnjId(LwoCP7jHbAr5b`~j|-kN&j025tnbxB z#)08n#rGK!bgmXEm7s^}Q$5&_>h1>LJq^BnRDCA%8hraU`1Y$W`_YC>9&7N;Z%DR( zeX=h$M0}*dcR)k31M8FBSKqdS8saUek9U7Vh7UCO?riYg)!3k|+I>YD&Fl8wViYkHAc(~G0^dsyT;JaR38%g8jmz%<Fyvhwv2Ll_fui(j{*r5Bo=Y3^T>9VTxwpx4{*Llo z)|ltA|ClGO#P{g$a{WC+e?zlE&x}^%S&^#}xvCnUpRIS@&uK)!{_r-v>)NvG1{+MK z=R_Ht8@b*ax!$KUJx^zPyUvvT;pcUxZZivI1rNb=R&^L;-ePUG<^5(ee}Am@t{Hbn zFY(;IhmCD5g5JpUv25_pYy_PZ+z8m6Fpn!#=v!kn{mH{rXheUuT9fnY5ML&FE>7Tt*KxXV3@m8FZ={1~?VYpb-MCJ4JcLd!*a&4)|!7Uu3P&oqD0^ z)C)Dq^Z^6-K+MR!9A@scf~`C%@5iXDa#=&du`a8%T;uZn*zx#OzKxUa6J35~^bP)0 z(^S0xnllMgyr7G|+>~^=F8X5z@G%Xz!T_$&fGZ8)N)5Qm0It%2j~l?pW6`@e*wgw} z-5gm>zh#eV!W9aRV|r+Tr_VvU^hFX*d$0;26$&n>c(P)7@9;tl+Xv`p=OZj#qIDy=3)m{w)BBJykM0uNP z5#*N{kdez`{9=3iNvrWAuEOq-dE2XkA)as-p%KTp#x`6^Ij$GHt2T)dEBp{9@e7jm z>5?Jx8>r=%Z^-W`&dJ_cPA}{9&~yGW|=u=T$xn!{; zu7=SG;fE=|?0`ccm8C^P`EY+|*0VIxj_Yn3M(5Ps&KG?x)-%caPDgThM_2AG&rnv-iW|%>~y9E^QBn1(l6(@V$D~>Gj8bw2$5^6Q?Dt6*0^DZY@t@!Ut7wfeWF`k5Uh& z^~I9%ZAX{0Ef#!=bJuq;TCW7sgqJEYCC+VK!TPRQuXUSK9H1hg*&1&u9}o>cfGMoxYb%eCl@vgyM^2yW;&PQOp83&%OT<|ozZtzL;NiAhNr)2znn#TWf?_&>jPKy<6 zTyh<%_^2wG4aV@|Y^EY;6lsX>erS8pcR#w}%F70?;bDUT6lCAfuWSasP}7USZH(LD znJ%uQxSe)*Hl}YPy0?i-qijZkL}hOB5b3?>zLYD0c+0U}x*Vf_ER4~`2K_H$^xp~e ze>tOngaj7={S)fA)u4`BH7@y_0ensaZZm+}G~jjvxLpJ8Fn~J*5ZtVlivyhox47~m zy81dCr>a1VeW>7C`Pu=tZjm!Plltd-jFWG{r6XtxkiEg3JQ*4i?qaL|WF^E7?{h^( zyU|tLShP(8{bN{8;kVYG)wBj=${@@6{r|2W0o6lW0hsK#ToJdiBIYQ(l#-;Z$~W6$ zx5k`!a4&R$ku$i*hm92qj+ffdGy$-VBGgf?VxF^%Jv{R!ts*Afm48x zE#f6Wadc^8+9^nTC8tG5a1kQjAU%O*7tWC$Dz(#|%RQ8p9t!W({m5Nm^vUhmHqHHr zqHWXsT5Qu?rT95?>J0qxEgG`}9!mwuvlha=`dqxx5RQ~PM&-VWazCvion3Z#4$KnIy265y zngjj(v4b=1@H~P|wZr$Z&12fCA3;OfG~CO?U(zD7YrOoi+IghUvC2a_mY?4pIU$Su z@La){3ZN)36dV^<4)+)<;1<|zmkv`fX=4^}M)mWRhdHMr$ zFO@2GL)5GXqGl64SJy^K!<1Ai*)jNvUYSS_JoOrQn3Oy{EuQb@=k>8vU!3w9w7t@M zUFwo)D(W7StL~!3zL7izRi&d9XFyQT@p3~cmxd;1Qp?v2LyNz&I?g|bI?mS@W2om} ziRK%N+Bxg{F$hM^nLEbck-6XH@3HgmhDp-;yk1Jv)R-~b&rh2%+0XAf7x$%pevi2q z@psx>%%548#Ne6JSM~Ep&+TQ;v3;k`s{E2fv%BfDB`zfS4ii6J> zT9C5Xj=GhP)&4)M{hzV;y`%Ln?f(hqFx=<+`H}gpwc2{Vbi}M}Rt=Wbu(#`AlQrzS zb+9QK_IMpEpVq)T>VaDNeAd0+y&-+y2?KfiF=6ml_4m*wVLR{1NF`bqg0+?Ncl+dxC}I=^8< zyrdmG$~?UnJnllh#%E|%HZeYGb99theU!uw9s^HtEdt^ii_DwvAVjZ#HqXz*TixJD z@|BNP;ct?VMQioL>u|n#Py&`M!|Orf?`i_W8<1Usf-;HlMulhJ(lRc*lm#mC8ADpg;@;1ExiYfS|Y!=26~GwDn!{4Ll8 zVi+>X_V6a)wk2EV#&(oPj%e~dXcKO0;^<8}dR~feYbIDc)2xDJ2}rXjYI^Vl<3jE- zx1-Oe)jR)b8fOY~f+x|r`mL~Q9ZBCGF@60jNGx$TB*zZG1u3+9$n$;=SEz2$BR^En zLTzQ`vO{Z{Ep1V1$%F@E)a01u*5vOeOt22Cyh53_Mmi2l@o`=}(w{G_u0?D_FkoHQIwRktT|bQf-T#RZ}aZc67zDGT?eC$)K1ZxQT-7nAdX7BmKYvb zyV?G0ZPt^4cMd-tM;j5IDu$oslh~Qm;#(El$6%dEQM3CdX~<+V2eRSkFhiYedTb)4 zx(%MM5rJuK%RU*&`sDEHTWHLzb>L8q#)Qt&H{{&x5G9S@umz3hm*bH)?Uj1{(ym@_ zc%uhN0Q~YnU$_M}-x2qAOg4uZC2&~i(t$e)#4mprT=m5stYd0Z=yw_x<4(b+Jc*Zryf;g{dpFZIRrSgzle?osVD)+KJv$@CQbdMZn1+cgtnS=k9TW=1Y zgYIhx`eJ?1{S85EDSk&soO5&xhdI4S>;SVA+L(ordR>lfq{`077h|jk>kU9xX=q$S zo#3~+G54Fs+^_rTJ|i14lg9C9EC(3;1Z9_-gO7mJ7U`H`hZ;s+c69^Pc+mO;iXjTr zldKDB_+AQb-)1Azdv)dyn9?55oZ$7s39=nXUUW3Pl?Aj&DvKBC_eRt}4$)&ZAj2R0 z%GLK3r$*=YKXvt)O6foqyycpQl78@c5U|@+siXuxdZeMumosI)8z}QHFlCMqs0=O^ zDrYUi6L)0FPW?oi=@szlZ*t#M?*N(mbLRVyb%?TZIQfDv8{TQ=dvCJTOv?e&d<5N5 z^i(@LXsGVvgH&*kr5eLCQQJj&OV-kmo=Yjau{r7B!Zc1!f)7B=ao(?N zSX4uiUJX-i32th%!)xi&>!{`fpO(YH=&g0eYR+48fJ1BZ@U?x#o%QtHL4CjW|6Si}3#OjQiBiu|UAtySs%K=-sP=zACC?#F2pEP%<$}LpD9 zMyW*&qYzjsMk(b(TWvP<=(5mWn?qh0c+}pw3jT`Kf_7!(I)d9qG!E-XVoTw2dbq%r z67>0?&bHkRHWN0nrPNv&%BY1s9EFLz-5e;muNS$i*&Tf8k8+=bC(3iG87hK~#O555jyjYh_sXMqA z0la+fgX>06MPF3Rf+L!^34{I>7}Q72m*|eL!?S1)8F@lC{z=pLCpF+H19-~ZuS|{F z`vjjQl_t`{Od+ozf$efCjaJIma*~Bjx}03lBA<5Y{;c>~^(Z`Tig{X>`*j2Ox&}OB z0MBT^Hw@q#8t|+EJgWiE82~$yIa$lFEAUHRD-U9=+{s(W1P@23DrloGzu1;g6?CEB zpB9z5fayBSBFn2|fJ@OU%$SRn^ z)$GB*_5zy}y9EZ*CAF}XTm{<=u1V-U%wcm^zoL9cpN}=D6lK3^RpAM&SIkcPzOynd zP#;l0E&s?R$j2zs5LH9sAHM#{N!tp9K~-7(hW# z9QFX8^A01gw9AzrZ1snag1#vf7xX|Sj?iOIsJyDNGANQ;VfY_(LLI}AsRUjkj% z50k)hnZjzlUd|QP*ulfVe_u9ua@>$o*L}})-S^D6%%Jjq8||H?lEYhu3TAn1$9EX5 z%$eOZh3o%sZ=drbJuhT39H0yPzA5bcdfYTexdmyR08QsswkQL(O9@Ak4ZQ9YHk11Z&yaSC2)!dgl$5=xQj)_Z zi7t59&-gv-p5psOC;Tc1_u>jK{2H#__0?iuyACIU@6agcxW1PkM(_LKGA`hF3uPD1SBn>Y(fRgOCxYFBaK#t%fiP3s0;)V782rut7zzX$=PFL|SP z*iCqcoxGNXs#0EdAf<@a{1+=2R4Un#&Nhis7tzZ(4=1yt`7z_>d-|H`H|T4k-#z=9 zid~s_y4X%tXeu_dT24o&jgM2(`6ZReI0?~qrtiDX)c82~E%x)Rz+sh}s9D+YC3fFO z?woc%igDBKm&o0v-9J4X3g*Q9dvZ_IZf}Wo<|OUTkb5$_H;&2eqTZT*kFDu+IAurp znMO}<8T9m)2K?Lr*a7@-G}Zgh);K$u!6^})m?lOM+40-RQoB-qupS2vy7Vtt`zkmMX#QKwCWkL$7{>-`qNHiR(y?T_li}Loft*{7 zSzf`sQEajj*_z#>o*pZ}`ZiRx6NJnd1@F;&!Y@pB{6hE7+XldnOH^>F^ghQg7s^^ zmF~??i#$!e`5^MNIlcLwnlIj)@2vS;DMkCd-YGSYAGs2QzwZG*=lQhUAv%`vaGg{A z0j_pZtu$)qqpyBg>ufuCWv5}(6Mr#1@t24{D@XL8(1Gv&U+7ZG@*gJ4f7E!P>6GW+ zxo>f35L_Z}CbE?iXqepaLn%w^VA0q3(PahAoF9dN=bE#B3xD4M<%4#Zm6!0MwJp6YYNHwY42plTpW0`XV%n}qF zE2~5KltyHC_BQnJj&iV+V~3ZMV=UWSxp;}zcUE@*Y3`P?czc@#zJNqV!N$QYSCr3( zVMpU1e7^{Rz235#N*w|lhZiw7uQ9_s*nx^{P~ba1O0%I1EcTxg?pzM!lU_{@!UJ;je*|x!Tj`T2MRmFFEUe7toR9`Ag*KhD|A} z_V6(}U8C6sG|sb)9p+wW8_%_C7^|`TbIcOmMwr|MT1EF;MyN?IlR8kgPQh9fkcS%K zYwB^0`5I(v2V3+Ch?zREV-Dfz8*3z-ITgDFkugusj_wuoALKBxDEAwo!PGNN4(pwqa4E@gZXJyf=oTrT2BLf1MoELV8<#I+~tXi2^HL-U976K&BS8|t{-@18eP+! z%EEcKezQ#o0Sym+!qiZWap1Q(o{jw80A= zXKKa^p7I#_quW;v$>O0di_oV$ zmYWY=WSO1PpuM9?+fr$+n9cR|#a&;?yBaEKY@!`KVss|BtW!pD-vL|Tupanhb_+}4 z@KJs|a%SboUOa9tmy@&kIzOMe>pniZp}BH^Uq;|kQ*Ea*993KTRt2}BbX*KNj9V%f zBNyNon`y#vtDBdwL_FF=BI@Rc}3NtCiq<({SBb>Bk?_#&sSP@Tbk4H+l~IyNt2 ziO2f7afV>WaHhlOh$C^PANdk6SzPV%4It!gZ~>Y1rDt|0c-(M`O;57tKP2>fbuJC%XCfT zAs#5yjn2+eppz=om+9`ROX2E0som@~>|opgJ7#hp@(iZ^eAyc!V+q;*W?MitQsqgW zRVy`E47cQlL}gZ?F?Jnc-eJn_P=?lrEvUVi*1wP0tKfM#wYPY8N!sK%1jBVRmQTK{ zLw}hd~G_MN)CE(7S&fNlfmRuLamqxD|# z#12CE^=Pb$WhZ=re4`_n_nlOS!Dfd&cK9~P1swQ&Gm5T)?;(#p^hTX0GV=!!nQ7N; z(|RUcXn13$EZ=~$BlwAYexzG9(bRdOZp0)5n4|%d4PdgNw?7D!MC(4d0KJ(_xtrDz zUGqBS*wL2}2Z4eZgaL|^RPbXCX(O1pP2f<9H`*pYH`L}7``wJQ*63iaCwPnG#p>|E zZyWG|8t$Q}DQ|cM?&&PPXA?7Pd$d}WWz+|<1K}<%t#kyxx<@k$Cm^lu4X>=--c{=F zArXt?jN_}a!Jl-6cQF;-MdqHeE~WbVyhs00cs)n+dYzW&tUZGHJ&{-VGk*S3J0;WL zzbeRovTEC6oORnqM<*QqH=y`;pl+=p+241Tj4HZ^spuYh)dU6*XuzHZuxHfwQ#FmK zg1-Pa{ew6Ce=z3xo43J2&Jw5h}5`Z}002gX;%uAH^3E_cRJ(xf`5V38Q_UwGiTX|S{B*CHnid$wcYU`%7dNorWoI` zF_O{yJ4i!D9+thMQ^gsk>N9j(W*WfEy0*YTS93l7>h|mL7o+JEj}dKAlPIj*X|Owu zY&ucH+v!Hi#WO-;^@K|uutvA|HQ;|iw(MkH_xLbQ{ZTgk{4vk06FC=aLBF>zlSrk-l8H#K&ItxmaHprX zDzS*?7c&yk4r4SXRam1-=2BD*h{$`}V%h}VS~*DpeKo_>RSGCYb#5X8#dT~g_pE|l z8EA`R+-M)8f-Qo;3WCl`8jsC2eKS{g);Vj$NQ2DieEh=B`OR0PxUWN7WtFU9D`t2hh zqyJz(Q_cN!m(MqV`E_*mlBn+*TLE@C582xdq3m{qSwxz8)5N$nG~jRpI9vmk7{C$@IKlvq(14`|ur#8#mSL{)SP7C? zAwri!ST>#;I5sPVP{CR>!|`&*lluf7{mR?4fw=t3+&yGws&R@xvZ!tiK+jJ*=YO1U zBxl>yFrpCNTa9jWDNVta2m-1G&5Tw!mb=Z}6Za$@=8bRbbC&N=z8%Q7nm`rfVbW&H zhbj7`<6+u{0;nb=X{MjxQoIm8!MsB_p5Gyqkn02+?+_3YT!!a68Jo3L96*!1)fN$h z(hT1*CR~yI(8@H#6;Pmtgl)FPYPuQdgzfMe?G^VoYOnD8l}&C!^duyPbV?d}aYS}$ zM>xf%KZ-iL`i}W%U{&k&R2FuLAE|WR!@R`Qj+uNu>F@@SM!$G}0dB;{64&S>?_rP&f7TWM21DI$YxGpjrq4<^|^ z(CTrT`dkdAGXl&^9kYk2K9ZQlqJ(4B)68Za(L4zxiC)Fut|@XLJYqPj1Ki&zy+fx=7dSXj6@& zb-j);fMYaZg#oOH@aaL|+pw3&sqRb_e1seRLH_*^aNswXq2S4!Z(k`_^)}(!C;3uF zrZP)YQ3)$e2`hIn1xy#jh?M+j{hsMYlZvt!GFc4iTCXyIRdsk8@&rEPi;tmub2;Kj z#BGOf6GlcN03>QQSL=Dx~DmRo05Y1c@e*H?Kua+^)5ws!8&gM6InICd;l!52VKU>JkD zd`r{oPf?i%Fit_g_gGY&{uVX5Mj2&n{Yn*7gFU%fY|2P1n5X^x)EV@%Yu{3G_4OB5 z`1w8hX8QSk`aD0sZ(mDspM%Qu7tu%A}fal3OX%e9i9mCeyVE z@=DE?+?t8nFwLEjVVX5^YBYQTeTP2+v!j2f9yy-*ApDAsifzhSTgs@>wSat%aKOk3 z%p*yh_H6ZI%?75=OmL*vh4oU)St9rCz8#2fY6XfjhAW^7vl4uo)`pguSt&u}8O*H~V=7shbtEh)!x*vZtX^b^c9LYO+HKT=f}IhlJN$%%X(hOZ#y6N2(u6<4m>-;9$McjPn*PPA8d z1<`yeCq&G|Fx=s81WnX+!N@6yJ&fP%w6X+bgWYQ_)aiPWZWvi}@omo7Gzm#;bEkpi zT}2HJr*bS#(8DAzKk4(N{TWB!1(&SrpOZEZ=w93dBeO_V1JwB>6a#inDV$Fgft*e@$mwLgBc5Uar)a>b2EdNZ zrVt!@G)b=ZO3qGeM!v$5`R-USZ=2`6>^Z~lln)^CU;G96)UGuLT3i8X%6p(OqOty7 zAlB5Ms+iqrQA0sdYM44y(%Cy{TII=xhv9S9KP|Cq&6lK*aGvW0L@TgLn} zGoq*IAwJyzPS=2S2Cz;8)*HZj0YqlHwPDl(vRp0eXtt zG|f}FnQ(q`ETPX=8uW(vzLn^M6_a+F7NxA>=Mt4iC_(O0*aZq_+mS8+>?a3fUX=Rk z;_=gp4LGj71wToBCR-3g@D7)SbKHs`ChP?4~a)ARN*2 z2vNoTvx5TE=L|SHb{totk|4Xo1b$q{tT*Tp?jwsf9E?TdetmSNu2)}0v0c2XVx11> zFi`~cZmE_!*B)hgof#q9m)-C zz~C!-I%^5cK?x?LSmiPI*}5+)niq7~E^>)ww2>neIBa0bPU@-J3l3{86@SPI78eKP-!18^fW+j#|Jiy83 zoQimxZ9c!h;4?zbk_+{9_oW(2L#5sB;488z48K=*@O!x}Zt#xJ8m6R$F1Obs{3`f} z=aHTfKoK&;GT-xt59WD7;l2u?l%(h?o-l6UM0JN;;qEc>2C96P$}$TO&ZFtuVhM|o zbaMkMRaQT!9o?6L`h0J6KO1jMItyODZxCnoodZ);PPm%U`4lD*lRkS8(Waf1RkchE z_qWB|81P6^6)NV<6{oqjH^-S@yYVbN4;9P%Ou{&pyTn{nITP%y_ywdd;_WRlLLT21 zI?iFcpuK2UxienbO6bSAG)0&zH~=T9P!s7;btou(^p1j*OroSanNNFYxgSV@<-v*i zsZbnBIF3CU?*u#DExlcp3)$T*Ic*6JLRL3&R-UY*59ssxy81kA?X*7QgSM|vT>W?T zK~6iW&qk`xL41DLCG{byWPz>qFGdyWk_zo0EUFRJWg+@zFY~f;XLZq;$Q#P2GLZuQ zk@qnc4BF*hb@)7k&e?H}Jvsy8JUx6dL}c>t`*^8Cn16HO!iLanV<;2~ZHY>`Kyd9w zeDDr<5*1fnLh(l4uW{e|qd7->jx|+yfo^OGoHJ6E_H4CmmiJ;yp0q2#+GeSZ955Y< z?Sajd@&v!c4!;4+*QrzRI!g&~Q-@rqIfYF>)CQ(67KWT=MG zKuGj_A|Ab8S%{PJx_mv!pfEaW*mdd|ml^J0GWo>GST-d`E-%N-k&74ck`t|oGmQ=} zm-Tw1?*Db&>}>R=tjJ2Qr#9$1$Y!fK@bkmK$l85AxW$~fAxyWEBY;tT%&15FV48Ha zHR4k}1RUR?0OZz>ERuVexOFd;w)EL&%yTK zaNL!Ue+lT$Bd`wIbs{H`tu6(08Q6Q`O_xeQxE#fEbp|?=#9fN2qD`v>tDQ! zBf-S=Lv0Qo@#gw^iUom5g-yc0?zeg!A{EmTnoq9Rf_t{t=Irv0{9TaBu5XL$a*qLn z?iSB$b%PafdaYit($=cY(VMuX$~e=z>)}J__5BiMypHYP+ozya$ZK`fN!%PiJeGck z-o0HN_eys)jqRR^Q?)Yj6qS4&h0i$;x__Em-EG;QM5^f$xs^?cuKoVG4N6AWp!h^F z*O~~{!l}#3B*WvuKoIx@4D^pElf<^{8&M|PkFV+U6NUDdH>6iumrROjJD2lfyPpu# zb}r-46J-^nd1w>KglSi9cD8kZ3CgBkqs`SCOHIY8!;c6uX5mtng7zGD-| zk~EQgnXitH{eA@I2=}8u@YmC0rLd1F>j-P~g_^BH+*OrW9u-Qz+AE)>jimNwE!af8 zRXqtSwtBLS`v+=kvE5H>ZiC@xC+h{5Qw$zjf77~wH(jvX#e&$$e3!DUGUSU`6kLofUe5BjLy^OPUT4SqA@z?f; ze%(^#Q^z#4I=9laoAP?N*6=pY-DwYhX30vP9V3V|dwyls3hT`7f0s#bXC^NF*xRKm z8Lnqq;i5DYo1~R=tbB|L%W_I+ZjQAksPmo2%jbV>FP`Hx0|Jn&d{)oz;swAhfQU7j@)&3 z0R7a)(GTmBeLjZRr82q#PrjkuZJW)qYP}l~17y{6;HJ%SNHQyQ8tzJ`0Z*I>9CQ}5 z;@y3|+XEt(S(7fXA8u|?brG8~sJaUi3w=R9h=mVDcM|fpd3x>Ma}T>Zz_KjiUSR$^ z-QXWM&J6yJ->?FD;x9D6~?jZ*vKHo0Qwb}G~cKU!g*Z@0p7Pq>%(v2*y z>&sk38Tc77fU`gfKdy#90+O>yzF`$xLYEr8SaYcOO7`5zS^Yi%Z*T{BFS%41-E!5l zF~-ReKwKTKqUkNky?m0+cxipc(+^N}-s%PrQ6FKp`(pluJ2)JaO0mLofvN*{_&r4NmU?y`HGHof-J8|=V&Epb)L&oXv}U`$KiZT%zAFl*CDQ+R z_dSE>%3e(Jt6(N%Pfg7{clh17f2qEYeCI9Kp|suZ(+sP+a>f+Q)3T`h8XZnHudSKf zkC*6Ug-f__E~ey;UM8J+36DUACP%KiSWFvT!n30>kB{m+KH8ASCduQYQ65>7$45Dj zOQh|+<+iD2tob|}Jy!_OUs%H98#N60F?d3O_hl3Gi?aO_{G?xJXiqK1gY%j2xmeCs zcnax`HFi;WUQ53&l|mXbl>)0Hz#5}`Ab}Uf+sDi8AYK;6B{}ORUH|X`TaIY?T_j|} z_XaL0rz%$yKC2!~8J*{3`%{&h;oXSw)HzI7!NFj{itYMso$d5OJCk?wOk6Dqntx+Q zZ!t?&&tV$R>rqJsp8!LJw|WItU4*OBTF@sE^nSY*v|StCYubQ5Jh`zCSN(@Ry!00! zg)jW?IO@TMJ1?7Q?b!!D(Nn&%&WQb{5hQir|S=M%nDjCt=Axn=J0@ z(y}cUmD{kQRpSB=c8ST6l)fA1<^8;tp;{ytTMy<~e&Rh;=Ij{jnd`H4uGpM7*P0h* zm~yo_U6<9sH*)E*(o`Z>yKR+dNH2JX2?rhbwQPFK@@w)KmbKr0R_SIfj{zl=b7FXp zoK4LlirBJsyYP&hah#Ig+uIi$*YB23m7J^XIL##16hfdxXdqSCp+L?x1hLdXDwArw?VUaWdB=HI6F>L8wyFy7b*oFo82BpWvg zo`g=HQ;1rci#zy-SKwA5(ko&+!3x~R+gd$4kq^J477*$^+d78b}^;=^*cPH9wJ zUYZ-J1w&$@Ol>FvE3ITjV0F1b5!lR?MiH1~CraSce((XNpwv`9?K`cpc(4-HSpat~ z7=n8?+`%e1``Ebx&fVC#8qQ939?L7z(U#dSWC2CxiEjC^lbR~mt%Rx-R7bSECRmA^ zT&!T&D!*G=kjqK-cfHJ;Sa@#Fe@yDm5KKe)G@hkUq`?R-c0L8jkIamS^FK6<%o5Ic})O$>&* zuZutpbtHl{cv$ENn5OcFm?^cL@WXtv&>$BO*EDk8n!i?X=OPt+DzXq9d@spzO8Is? z)l3@N5Vi;Qjq1q^87R1YTyJyQ-#R#MKJDTw;f2b%%EBS*Ouw#|s~4h=Bb)G#6__8r z0PC7@-$%f1_jy2Zsj>H{%H5Pc-`SqKY>H^9;tFhO4=&~#;9KHK6A|)t6Rp}hJ2Ik12w}DeNC!n4`49m*l{+- zMI)wamLV7(OieRfP&V`RZ%|(IxvgML%W)2h&%S|+xY{tM(v`C>!C~O~q@6Qb*-F=j zB_+ag2SfE6Ay5c<=7+*d`FMj^`fR0p6{h0yRr=ad`kW?zdw3Z|l9jcIT*oIPt#J1_ z?xn3U;>3c>qbOK>%N*q_4L-(QNW_~dhj7`>%5gGrDQ8)Z_qCIv{#$GsH`r=(ty^M_ z9bBRF-df&KaP_;E4xSPPx7C7k!IhF+IvBX}gS1-r=l(sN`giu(Y*pqeo-SK2H+l3; zaJSxQJg^^@OL^sjyR{TWnCx!dE%LOuTc;V%{9QT6kAvXdoc7A;TB2gImZ{%l=4@h1 z_z68Wd_ByaH>I+2Rc$gV&HoeTt$qNVXy;4$J@Ur}cO}@&l2f^xV$-7hB%dB;JWBu2 zze}IdRvZ1|s*EpI8xwve;ba9DPlH=@7>RX3=>lN4Yb zP~%No)qg~l>{m3A7)Q1##*ukK0_g3563B%#OXT+MIv|nj z(bPZ7{Y>JUwp z(NUAt2xoOVvU-fOLP+oxTcn-7ihccSjrnfI`ppLC>TA+#%r)sX`ucLSzWq9fWoF?M zQSnysNC4l`7di?xyVat%WPGB@^@);r3&90P=?{=_+p)F6(wb!1XUuxF`7HBO$p3r* z+kzKuC^w(|S4zq>e8GZI3>2EXpv!nA*O^ru|i~!_t&ZX%}98!XbXpMzu>4d*tb;-3l^f*1=J`@piQ?Ju%=f znDUZR3-D)k#kr;=moqPH*7>C68@>pjs>?>Ay{Mx#nc}|5@pL=eB)*hmhqEj`Pk3{D znyov`dk1MB7}q!_e5t;;CR~#u`pw)=7wXu$OTur_&!zw59t>Vax+U4_w=u-(tiKU- zs^mxL35H8c2W_^*l z`$RZ~mi>@R^~%XyD&wSQvHFtosSY9j@O28B19=mt`Xe+VQT;I@$Fps2u_F^#wE1ur zsAYzhGDyTq6;mh99%4tyVVPSisok|vWH+Vd;>XpCfU#E zM;~Os9_W7aaRyNGU8njcy4zRPx3B=JKex3eNGm3r#xJ5d?pV)(KV!KWNPRE`k(Avq z<&>7Xl{7yT-Qhi_v}>?V->zPa$17)w7ly+uGdKPTub8802; z)+L$iR-Rm~t@D)n+{&|&XBRiW55EMY_PP0e*(sAit8Px(r4CoK!CXC0DAc5uyCNFF zT3l-v>YQ{+izG!|t7g?}`6?CM@vZ7~8(Ni{?n%_7O~ibC(n)UkD_EcH`rOo%S6I}^#M{*Bsc7$& z33C?`gUptGKmLhCO)@T3-Gqo&F^J!3K(GB_Ow(O%i4FH0vDTc(Xctp{A>x{Us>Q4s z58{3Q;hgpg?qPJPv`&Po)Yeiog}<+Mb)H&yyin{p|)c$M#RpY6|EkEeyh|Gf1Nh6Ui7ZA1-fx3U65 zUAF$R5w^wL8#vZ-s?QO)JA<(Drgce|rI=GH{4M6T^0IFDJ0N$DBLvs+kXPPZt&JoX zGnMqQ#$YnBM==(?y*eRJw6ejc6PCQeM7x*b9ug9SaJAfHoafAPKA*2sxRg!W zDKDQqHiffVFFWH86y%1zifxe|Z{h7to^VB4`J*?1?8ztBT*c2Y$#tx;t~l*ALT1`P zuZ-11D(e79K)1h0o;!>I95-AY?x5k7w%h&`%jDk5S@wldJR7RvN>w>O84>&(l#f`xe>)V@bCM(o^gETWLHkYvcOq3FWTS(cSQm zLfzT7bk%3l4UZ^mzXhjQDX-&L-79N6#NHwF^eC zg75`Q(>p9^$GbE?WgNK~tbu)57o{J$1+sZ~P(2J6?eU1QMdkv7fV5S7GA3oCv43xaxd3X^*;|5LVw}n(O_N+}oUl;u-C^9A)ZQg9%r8{J>CO-I(H@X0}Z~ zJ}kJZLmdBSYgOW?%JhtUJ6CgsTVh4embL424C2!HX1U`;mX5szwBnx)xpF5u_88ki zJn^7&?||c+{I=?qxC&JxmxI-_N3Ouf8Mz9VxvMC2vxHtFq1QU*-ts^*hh+zuLD{D& z#~y25tJ-n$J`;JJ_#n)(2Y2hz}RW}0ppb}f8m|LWnTcr}Wp|mS0^mYloPeSjP z&AXV5G7&P@ehOo(Q4e8Z%}%03=S@Z*A9U#qyoFXLRwbEhkh zHh}8iz+&9Wx6%h(@Oh=5Bl1a2?alj2oNYnjRqz?X$N$8o*Us7UdEwJ% z>WoCwzns~jj8(C5c0h(vhqPa6BmNdne{>YI&bz3Dsr8bsk({ez?NJoIX`!mjJdTz@ zjG7XB)yO?K7Hm|mj@~nrVg;vrZTGgAGiB|RZLy@2&#lepw#8EI>Gr0wH+rAq7gAqT zcw>t5yZ5Qchzm?l@+OdRgJ*CeyuvMY!m`U?t8Huj5cwi+|HXYAiu84UHsqDkl#=M0 zr^#E~%`ba$b3r6?#=SOC_NFkQ)MUf(L-14r@@;bDr{7~kKDEFy)p+N1EaoKauh`j~ zlMR(4#PI^hyCUtCTb0pNk?)n7Bow)1GmHB@u;jJ2`=qNPNPfcFs~U)g2X(()V(79S z-1YUB$7ie@yZfYCYVy`Rh3z8eH`Jn~8Yc+oGOj0771+nU&>rpnyOW>(ueFS}K<|g0h9pP<;|t`SYfCLoW)sR!wgq+HZh* zbM`g`$*L^tOH|Cy9LKu;6fKQ>?)YTUbIOi8>3HJ!9Cym`#LqmIZ_%6T7otrSGc5w& z6@kAfd#$SJCTXxmL_2DiwqzIBj=VB`9+SP^eBGGRI1)1WHC+To-9T|tq-%ilAP(H$ zP7A=mD_RA>fMVs%!E+H0r>qI|oyT=sVTrAXZ*nNs^&vD{)-WIIR!+}YXBOCkq3}3TyBf3xwbh{lm!PDVlJ)ivI7X|F2nWaNYVLh^SYw3*LgalY!&l$Vcd@ zxVV{|a>dQml!h}g<%t`_RN#x7i6sqZS}7rJ&`Lp4+}{TS;|4#n_&P%Feo_c>gS5o> z9ySCo7~>e8#Arg07c@(Zc_@E^xOX9UE@%-CMn1@}`|Kxq+tHe2@MI}H7N6SAVjhA^ z2V>3q$Kp7SzmPUsjD^F$asF)-C?x^5+Uq>?|{k{pwcY4 zH{Op4c`60J0t~K#SFwrUGHT?3NVW?0sMg|)>`R~@nw^p7gn)Qn2#6PifOrufHH>7z zmuVLoc@}_S{8nyUW1Sg33wt}g+uVn7`u!wgd=oLYxnDMbB*%8!!<++*a9%`uyoSnM z@SxepgV!|;@{pl09?~Somki)b0tkPW5PeMHo5t}L9F_68DSq%B{yf2|L2|(_Ya1FR zv)g%3tT~q0VW$JWrpv*RRyWU@!e{MLuNr;H9QJSJ!~VyN{(|0(2nl|iFmLg$G&s2O z`8ClaInSg7hh!m^_9xZ(Fj zj81z4VJIP)0!Dmlj5sHyKHv@wbr$rI5$yG}K4d*n^pj`J&L)iC-k z+yfg$LeETOKJqoyXhp4#p6Va0*>ZsX?-OhNMco+&=m}Z}yYH}%RJ~+Q@K=!FL0u&T zG|-_zdpfLj*G+^41TxSKi{!4qepW#YeP`?jF09ttj;-S)<`vM%Ng^7#vmq7v0|*N0 z7Pk|IHuS0O3C#L`tbGT39L4qj-tOLBmE=>ov*aRUTk=|Wk}b)&flW2VA@pLK(5p>Z zvxg!0e8M!-Y*T*$41{2M4G?_Vq~nBt&p@dC`+!Oy7&s$Le)tN(fX`tP=|>>Yx<1gn+%N_73BSPqG1VM^W( zRB6(pd>)H@TC!@rq=Q}Jg`j7;UP7-B?E&T+&O|8Mqr?(tAY$G~y;K+6Ds|H7!L%zz z!8?OTL9lHD{qBWVxZE=tx6_hS^R0UEuUHD6)RkHmF#*(&IVwAfk9{yL%SoORo>DWw zQ*ugpTCQK^r-{I2I;2{!fTfXyjPi_%@{Ek~tO7hM0naJGb3Bt7S!3mVr!L7$fzy=q zmIAWkHd5_=nXQHFw(kOY^$=VsWNCC11%iEwjo-Ousg)3y+7OTUbCNXu`sc^cm`x$6rKKK6_HJn(5ojHJn5e< zetJQ)^dvRZ7i3r2{evJDUWG>`L+2$k=8?2dwD+f>!)&5YXS1!v4#oZ1{$g=B z3x^Oan@Vq6cGMDkY1w%sFW9El^k}n`d)MQ&-MdMiEK28Ohfy63MU`|KxqPHKDN~q% zoSRn5{z=Z)@S&CrnTfe)f~oF?qBLI}PIQ16daSX#ZuPyc*4@`=-F*VxumLjC@ zjd1XjelS8BZLxafA(ab-4|Xg``fR90_Ke6|dD#~!Y)c%&7_e&UY@Vc3Y5&}_JHomF z5G>!6=$y|^GrJ%!ACr_{qVsInw@8w&(p;}Fw*2V9UhH9JahOL*T?a2vrMml6l z6M5mbEmV73gjaE7zu1kCU;FqBjxLzPr6V}j6*~0pDn1P<-{(=(4n5o0Xpc^+^Z9MP zb1=#BjZYFUFfK`ILE4hUo!a8FA}S`n@=Nm2V@y&VdNef^4a_7j>q@U-PSBfA>&NSS z-k7%Zz7;qc?=e}!&KfoH*T|{hRRwre0$x*q*VGvn>ug>Spqq*r_Thr;v1eo7uP*^K z9<#5e1C?0sd#Z0#i#Pwj#*1p_itiD0KdhHtqO;E2T!>&D%HH^@PBWg$AEbN^O+3R` z&%{gxt%+y5JL3&zzJ(zfQ+;!DSFKj2IIib!$OSTFHLi|1jY-mIm9)G{c!}&NKz{dV+$Z(jt0_|&#|VN4DuRWB zl*>udLhv6n$7U9ta3cVM#G-lP?p#p>D?1PgBpqv99jBz_3Aar8>5gz#E@1gj=!bW_ za^VPI8xm74%+lh{5Uj~P?)*SK#T}j{ZsyBCnpZYXvPQCe)JD1kE#B4ZopO)bpv8x2 zJxWHnN7kh%@ z1UQ(?V@_O6Yz@)%4~is3gga z+lMr+)?@C^4}|SOnsZh)%HdhrpHFSr#8TQrTL-k;0~nXE!t4LV2ek% z#bcrjub~WYq73s?p*=on9l&CeU8fk7bwLhe&x!!%T+omA@pvkUFqo-Y7htNcJn(;G zs@4%xrKxu`&00;n;;WjqO?GF#D#Sr)Tt6TzDRr#^ zkE7FhM~G*dgTm~C2|wqqJ5Y*9v)xz*(-vedu=ZoDrh~#*`*~RNfOP<4l|3w^lxMKk z!FvEpt8LVB{Jy=Q)lOILUA5Z%+0BO4JJg40h#tHEJ$Nsum*iTLRuu zfOjO|T?Keo0)DRm=$i<2 zOG}deoA(_~_>|w1 zjY!|={56~>phu|VETbAliE=lgcrl&|d!Hrm%8-}b-rJ7V&hv!x>%llfJ)E{&RN>t* z7_T{m*EY1)Bl`4Uf`5@QugGH_NaT%J_!!JoIr4!_`l|)pD9OsG;zQK!pKRR}v}tSo!V#jJ2qPZaoW@ zd=#U1DEqPbS#%?$d5v-><#VR=n$COVpRJdui*Qmau=c!T6h;}&Bpk&J4TX}G<>hR_ zY;d&ujsFQo&QXJXLP9rW}BJ-tECB+nx{^M`6iB8QS&BmIi@uaZhn zeX{QZto+WqEH`RjmZV22uqHu7S)=IE4|rtoWS_M!mudV#rJ)?o6>7SXrq-E^K>f2q z{j(fwpDDm+67UxV_=_IalW{z);aB6V%4o?)h9z}-byBH&*X?VuO(IdzY)_~JSIVS6 zSA;*8Dg9Le$U*5$^wPO;L+RX1>0G2$R+LKS3q|z{nar08@TKnU-~IC3v7vNs^UE`# zT0&leUn%-u$prtV0Dr4euKPBW-aTHqI)llT{-LP-Lz4fe0{l|~{-pr_l7O!j;A;u^ zw*vfI0{)`_|B--i6yO^P_*MbFm4NRQ;5)Bh=p@fYYd~=!Zb`n!up&vk;>I{1AMpK? z;r{`CsyMwhX+MN7h1!q!&Zo$^vzYenCz7O{{{=qzc^K@-OG&BY&eYx)>)kJj|Idoa z2}uPtU)j$m>0r8qJe8WoxXP#41A|S_iA5NNg&DK-1P+9z(DlWO0@n2l{*v(9gc-r4 z^R+sM4V_1R_5?{xs0l>wc~u56%$bTb44F5hF&~q`_G{RpM!6K3Xuai36PVL~%Lm45 z5NOH#&dXTN+ky!!>>?fZcJ~JQL5vdfv{6 zzIYd@^7|c`#a>&Bb%nAd2}Dcp;}Kc3^nv)0cJtyN0Jog!xGPKbZ?4;qBA1OBNkz9G zM8VfVz)3eUmi;=m9{oeb_Aa}#uZ+#p7{>8q`>C;=v^ut!#5UTY*S}A+`Ca0#R`oma zS0n!J7O*G8UsA%cKm1C3PoOgqbUSAg+<`b;9%oZ(>?cJ6-MhZ+ZzoY_n5>{;Cf&7g zn-^r0kL7Q$tIC!M^e@lO#^1zuF_oY4x)})O$JcB2<|Zqjm`T^yXeE;x2+x3!hnTa4 ziC0wimdN(YtPiq2;w!zQjBbUD=7))_ZjD<$PDPBqS-2|P2DkSjXj@SDy`Z2EWE%n$ zyxJQ&Pc}mbf4Md%4A#Q7+HJQ6|38q4e&hwaHs*Qt#d`H2YMg zyV9hyyAtGkVf=|^;gE3}9zxw|lN~G_+K3G*H2=q_({}`?Z{GwPtHhTCYOSoKKo3M3 ztqKyAYJjoijfY**BdJ=-e#ZoizuIwSt~anuABP zm7RG#aqLegm0Hq$$+D8gp!$eY!W~6(5NMIiB=LIriLthtMer8d6C`+(j$72*lN*Sk z+s}GQO=L}>1>0yN2ZxD%MnW+|AcgrRTrjagOl`I!R0b|_ZVpdOyhK73k|tFmY5Zz( z2JeL5O49AYJ93rQ47q%fLjWQQKn^ffCJUO#2)YUQpJCt_G~I6hkc7aD!Of+A7 z3%yP07-`s-M&OKG(Pd zrew;fRN8^l@ys_#mcui&Wg?xWs$UffM)6${lp2|S{B*EJQ?jcjZTL5J6PEw;43M2g#b8xboyA>&7ybqh0Wc|50-DDtj0#x@Zf$G zj@duiopDIuERaH^5|v@@Nr%Yz9q#vsgyQ*U@Kdy5yK2K&{v<-SAWorm*{kMceu(8) zvs0JyO8#jz9bjo~xb4^R#?|Q62k43Ib;hUoarL@PYa=_9-UpNHnTx;7npo)BS~9m{ zrc@A6{3C{^qot%Ac2qlCtYfD}f^nQZ(4g*Chr)34PU1Ih#fH(AswR=$Y+r%zw$y72 z<5nU@t0r5GVY8fTIy@>14AxzHzH*w%yRRh;^VCt|? z;F{~g=|p+vaOVoNOw@IJ?7fH-1zyF0&s7aS%HSjF@_ji+bR-W$SN<7yIa z(}LjjA&&uE?j!;)1H6g+G4G8)QcE^!mMz2bf(DrJ`Ur+PxMVU_g&@hu(* zCiNgGjEE5DU{jNJg%JM?#6LvFKQt8ouyA}HgV39JCXGQttJj>v!TGYDBOL6^H=$N& z=f(je)j!0mF;?BA#pL~JRvXf;4GG?_j?<*Rtpz0EXR>kt!58Tzw4Cz^&5`ekU$S>| z(p1v3%=NIJh<}#U*X0~xvUQ3zQfU3l@ajbuA*11>vpRb?oLPGm zAA*&JDc)h2Tv~@Kz;Fo|p#UQ!V59(RXl1sMjtfQR3MrBmqXWZ$w>#|Z34413 z-lKJUjQAGn`Rf$X>l&$Gyxz|i^>jAghOE`-{nJLkI+n)HsFQ%f=h4 zDt@eNiP19M>8OX2>EA1fur`I<#>_kJ%JL#F%ZaDnI7O=5JmF6QfH%vhgMyp!4o}y9 zw$+zO#hSTd!*mR13CXusk-ZJlF-V8;N}4lJDXw!-u`Lu>^YgI;o=0O($)teP^CM23va` z;r<6%GySYd+&zgiKJ|!jAmv-uQ zt++8o?Q=JM9Jej^AK~A&AbA0L_6Yx~jB}i`H>GLL=p5o|M`{cCPKV_4%@7SSJxW}j zQ}KT1e5I>#T1sOD2_3V=Ou41-`O4=z*p^49!jDpT(&}t-Cm-oA_)$;n)U;~Nti27* zSkcNnM7^-J6=Aiwp)Vei!t0T!=8QV`#}C=Cz1J+cY0CWGiVore>s(o5Dj~i6keAW z;$q@I4MSB9GAlN1B~8y$Fo7d7-27{FHjrUIb?}mWg)dq(-`p zGEq6ONOeO!EXh*>3E?tptE6Y6eC zfIBOYu{PoRgf^lr?HLhq!1|Z>G^Zh6{)9B7;pvejqe)?puFdT;F(Ir35j<(J1od-J zfJ;OHVguO;UIAF=zb;nmtyikE$6oE&>y-O@?TEvb{SQlfNPPcKw*SFLdY#1HgG#&? zN_sABiu+&%7i+!YE)Vp#*lK573Kz0YJ(eE#*1=)@TczXfA472B+vB7awli)xttt6( z!p$D#t5=MzZp+12JL5qDMn}%ajl^+mNktpTb_YtVWL`GYM((3+#WF9Ww3WANUODgh zspUM*FXygDRV!x$mGhT_!}>Q7<-Fsl4V071_vwErU*}0x3KuBbCaP?wT&2p!Iud^c z`B(dBrCud#&q0wcpdxh(;uoSw?gD`jvwtfVf|yg2;0M+xAFcEl`r9bjOEO856y>JZ z%Z+=dO2W%mL5ojf`BvEaow6*4-**`AR57c(D+jxKu;Uj;p4r>lsO{8P zIZ_+7T$RVvt`gsiQO|cE)-n;R_$$67@zPJ_X9->b>HE`HIzLoo0Of){%8QVZm~dRo z95NN|JV{Yf2UeM$#e|G@Bv;&<y93X|chQN4eYZUOLp$T`-es8goGYkYqb%n)D3)&bq;TD0UujYc zuSS=>%JigZ-l{5-8Pf`Zw|j?*@8xt}!_@41z+qlZooKS4d5y_8iK}TnFO0Fs5TgJf zO?PodDlkqsA6TN^f55S!h;=RM>@n_Z)BJw#<)J~_YEN~K7KI$E_G|RxNFD7-d%(F!V#Rh=8df%VJgXkL!qU-527$Nq3V4Xh;<9rL88wuw#QoadW zP&Z-S{|f7V%zglo{t}M#9U|RKkr2}Nc{uoc1m8lz2(cf;i1-_mdkEzI8pa<0{%;8% zA@;+-`67(-18{C59E9|J84eb#xeET06n`SgzYAAPa3eYbZ%1W4ioKefJElrS#_h*Q zdb0Qr$bw>nfm^TNnRE_v05Puiesa@nt4)e6H_hV}U_1lt{iT4=zW5I4%w^(|F*j!g zWR74jTJ6h=ccQu{dVBNo1ae{)E_Z?6O5Hw~I8*x=TG$Uy;T5`b7xHFCZ7{DeOFjrE zDp4qPMq5w?jVYlRU9vb64E1IzxWAuYxi6ppzwGZp=L*)PT}cOkYTM|lbf6>ZHyfs7 zICl@;-YYt}QQkgtqAY5+YPoI+$b0varuMe@UP=3sa-NRa@Y~u!N(z&n57ygLR(3+2 zKD1l_no;fq5i8caqi!!0nac7_b(($3j(bgv4#0FCz#<4RdN7r-gryDN@X?&&x6%wm4-&_KYh4w|%SyOn^gq|8Z zuaFjlw;chiG-;8-@6_FITh668w+dMo#aTm#q0EQoF7x%vK|cpWNog9}4wN8>F{r5WPcnf6HedN5jD6VL^Q>ra{ZgRj3E(yGpX+3ilt!1eBwfP;F56 zUqV$b|01I4tDVIfG|IWQt1V=0VA)i@*Q>ZTNoR96z(jLZlBRWzF5e>|&dT{ck6Z3+ zkD6`=xGvk{x&~8C(7sU;R9x6Am0XzR-oCLSEp?Uf_*kWF{0gr@#|<(A>(~5w@+<^; znXabw8a0u$W?32w4w)K6*EOwC{EZfWI7G{nb{K=JuZ6_%d>_uhecwH1&_{xT111#5 zKr4l*>|Jc=Ugf_3Z}%!Fqo`r+8l>T$?@J}?hZxTNCToS+oh?_q>tm2k?XATsUjv&k z;}aS4Dugyfbu$yKxP^(^517887$_@W<7MkwT%(}O&VweYgeH$+IuC`t55tT6Vl14j z&Zi!ccN6a6u6G&Xn^vfZJzFn6iuDFC&-6Oqa!vPSKTem+U$2@od*x~uk`>d$(LH`DptIEavCZ<;0V4 zo=?uDnAfJtd3=(}iF4J2)cd zJdMRB?yNu&he`2SvBP-A^ezY9t*W=UUK_uOf47D+ebVh}G}@Q&0oY{Ekj}ZTZ%F5A zmksIINDwx3ZgV{wI&7JP`oTy=&ps!`cAuUF|EY^LiKT*`^Y4jp&wYKQI_`~7M3IDa z)f9R`6o}0d78=uN+)#R?lQv4a9iP|aSRG1Zl}ZqoRTlB}(SGQa`(7@$JA6C5e-(2! z%v-wYVnq$WWQeQ*dPG07b)XonBXxW~m?Rq>)tVyGcD?hw$k(*X=zNZ{>b!vA^`c3p z00SVyc?kh8i=X_yBUF~!i`*21g4`_Q+%Pt^2LXnKsJ}vC!)e;(oC@9n-PCfv)kudo z&VY{i;fEg#=T#aW9MN7$G+smI=H_=YoY#e`wXW;u>}u&su%o%RS=a3g2pRdHdBwg^ z`137{k?YNH$2E#)qx-%=C43WvZ}7%#7hmpO;hpbVG@smnzJCLj)?yba88rQ0^cz9~hrJ0j-8 z)#s{_T53Fx;X|d8$vT~_$%x*C>8_(Okn$}^xeEu?QTw-W&m=XI6h{8D2IZvIq^uC$ z!*cH3OwCc`cw8?5(^)6t^qEn)B{HJe64hhZ^A>H15Mn>BZ1(b;b|bCb6#H#-nkTT$ z{hm&&n#AfcpwZ(LgvSi$9g`$ie?TEWLaU-o~rh+hPD%*@oG$?FB;BV z12Xq6Wey?sli2cEVVp+b{GM~iTD9y;r>{s z&c{>TYU#Z6RBi$F3iS zVbxqr`sheMdFyoEJc#Xru6O8aD171socJucC_W0#MjZH%yUE1EM)1LLi99LbMIpJV&ejG)H6Qa{frYz|9>eRdjdOT5hlBNwE&v$3dH1Psn*IsvRKG zxE1HMGmewzwMI^*7D$CscK#35^9)Azdvs8i5rg=BIw^}uq5|-NDbF*-sNOMro=4+) zk~VTzb-ozYZZkCPw@Ck(!Rb?JRr(@0>s*9Okd#!=H%E9}H$|vBURxL?fasj{+!!V`hD8$--(4AQ+wnNop?j=vAl{7_SYa)NFv~~y z4hR>+^?d;07$0H4qwoVHrQOR#ko`zn0_{gpZuc1gAM=2Z6YyIApGd2sJxRb}ztk4u z?fn#bdrv8gTDdj_9SQ$}yt})tz_6e3Xg!MB48h#0=NOW&Ekz z3;s%xh-G4a562rAySqlS8WNersIlKZJbL4H;fS7px4FqG43@;G&n}o+({+pt-2}HQ zQ~$&vv0b0peB+#OEIs7Z&AR#|q^oD@a~yv5(fiKnsuhlt>;wMRHFGL%!!mLAieJi6 zG#!AcmofA%1?}8p>X{6B$^-3|KSB84_WWDr=L`RzJpYXRT;c!L^H0fdFZ{6+l)pPa zP0z%*;w<|$a9#k|&%-qVuIJ!tONhF`)*wF&us2d&^lbGi#s@h%mKIeXQ0*S^(7Ke7;3Emez*q#YrpG`DTB>XAc)Z)49_lW*4JqQ^a(qPKRLSlpqrTdH}BYyJjN z^H#9t&4xs_A(=_kC+T?AjI#t*IwQ8YnS?KcMR!xjYui1-ys)nQL)&|&h`gIRC{n+O z?e$?_mgRj}Ix6>Nc#m;A+bRLKag%67xpyqo@#K~=VkA7$AyKwk?4xXJ*$>cWxzeH~ zR`fBnqD!k7of+W(xrV4Ang;~E^?hAOw!!j`G8 z5&?`@#%f6B8;nen&-svGCYhTfsxz61b$`+!`|53_;ruy?w*!B`gsdlGS^F*OHbMtGmL7W^uV=U~vtst2v0b~$JFAOowwOqM7YXu37cFMK=(+&y2fPuG zY)lnD!pTZy_ph1yB$gV32LR0Wt>DpTy3Z_DW7mE#MV2n3JTSyC;U!3nkWqWzT3jTS zp!lfvWxt!U$b}GcAC0RgnVPy-g&QBg5slgp8Uw_t~LqjI%4V! z4sZGPk=MFr3&(cPcmKUBKeZj;nER?X@)l2RV9-|{$eF4!sI8}Y>V(wo#zQ1uBtlgOBH`vtUkK`id}L#XsbOfY+yM9ls@`P_A&m$0A132=sw zr-gS5Ogjdzaua!#Gs0`ta9(?0t6-g|tY$sD_S`7GcVgU7t8*7bqbH+<#wecKeQL5P zoLD2}&{(vyAec55iA}3sLsETjRT*LpW`0J!$$d*q=-jugc%fF0ii(QH?U%5Gv?LTD zVZR7~NGB7u*P>7+54HPQFe}7N^H|$On|-POUJ|-1??O53`@ttqi3Z1)MJr1x)+zXU zQH_>6W=W`3YRwpJ5OW=-eIKG97_F#|bfDql)NVD2!gM_mHKIF!ZSWb0nKM9nN|=%aPlWaQ>M9jlymL>A+EB5uC|#@@Zbi%1G!)4GWv z^C}kMVKMjioxM`G6t8}tiKb;+9I%3a#cOaqYe^1EVU_vULTu!B9(S6^2p?=X> z_WQ+*vg*@fcUD$wQ%dLMPE_mX7CvdS5H~IRRCEZ-JwPD3hae`2e#D0sPs7%C84e$s z-1#CP&JX9}QTtKaD9EE!vWAz^O)F}@4){i~LXCTYhu=Tj{hB-|U-3_(e=P2wQj>7= zeF5cge25Y&=>5a}doK5&K0IGSyo5AM&vntMoqex1Mb$a%$KOx)X{P;WOrH~YKa;dN z)9!hFs9Nk!#CZLVl*C*!&v4w`Lidz)Y${rePcEl?-T0@_>qhR&+i1fM zPr#BFESzuq&Ud8KbS_YQ4erRW5?Gv~y$htJ8r$8YPK5qy3bE&kqy}1Ky>@9$TajLD z9p#xPAP=H16Kc|cxWaDG?yP4!V)pK2mai~9X0Vz2V^>3LO3V`LX*TJM#cjMx7S$-% zEa9-1A8@+|C*s?chl-neqGe|FOKrp zJIEP4T%|4wow``eR^zGqdY)#7>v2`!I2Sl(#2cNfbZ=e1p;ikH3Ez7!1 z52Bfq=ixKtUUo3g?Qc|#7%%Y~+^BlzWf^TmmtSUZXOC9nRRZf9GgYY=@h9oH*rnDj zRg16KAu|(`Z;8{=>?5u4kT|5XKW@-M9W(qhW5cL=WIXgFF+?aN#;-E&r>iJBJ>Clg zN8RmhCCAK~Q`L)3)4346MQ`jdD%U?Y87WKld6LeD(Vd*HOx7asd5W%d-%pV|)rTp* z)Ywv8YHTTQVz*KNa_sA#dJ;~+-lLBB0TTNPn*Kgy5bJs(11FtU-{vIhLReJ-`nDi~ zSyuc6kkkRSg}lnXU6V%1?tp_-J^oH!HMONRX{!Y`HXoyVcIPiBb^mC=Cj90kDRS(u zP6Ue;KTXlitiPrvliFy^yUH5GbgyE*lr^%os(`KKbF42?QeLEEGJ9AcXwd$D?zZQ8cXB* z!vXPqocNN@xxpK z1)g*^$Jjw{^2BzalVe_bvbM0fTFfxI;D>KaLm^OcbedkP*hboWJG59MT{;<^%V{47 z%}(3nUSZ|@KzX`%(Zhhblx}%;xY)`3Xv1113J&D zxU*+14(Q_@O-~~v z&7Bm@on%knSpjzD^=JYm(n7P=@N{53Y6&M*u=;l7^=NqYfWDsx*Q1~N>(P$?Wj$J; zYPbUbGBz zw-<$zkZsaZOpRwWNLWxjip4t8ZxOVg$9VsSrlodKBM5Z9#myX3*;@EphxCq<-kr!U zil1U#5UsZNVfMDxI@=Q>%IEx>bV7Y+lC@u}sHb711N$H6ltF6h6aM;p(u*-eT|I0`QTFi9HkuPzK2fZ z7j^j#5wWhl=~b@i?|GjbMJmMgYzT;W&0a-r=hcsWjo<}}e@%Hw?o<(}rFRqQn@uAR z{BcK`w);V})|%diVE!%JCLJu>`&qB(64bxe$g??vn2}-j_a>=TDE?DqXqQ|EUjq5y z?-dwKgb&uz5}Y~J1Gme{t)r?o17)D&_Ts-3srv1_ICXLi`GHn2Fk2A_21o`b%|-<$ z6%$y`aL@Ik*C(j>$v_oZtz8ZqKx~!#(*PY@cN%fA$3JBGI+d0Zp8J9NaHkQ=>#;+K zec)i!P`YYwHF*dSg@ z2rs!oykU%ocM=rljuGwe{46jvv}QPRE;JH5@m8&olCTSMu4DZOT!#ox=7)w8q)7cK zuXf$Mm)KgFSUn}y`3&ow^67O|qX%HI*>5ekcM!b>kDi#%C-4$uPo#0>EkKia0h*j9 zqbyV9I<%Wwc6O8N(C!Mby9Df^0OUB%opve~re3O_E$DY+j1?^!(hI_Ra(lfciLs>4 zTs$U1oK1Y*6?@p1@#Zli=p^g3x`@3ghNCC*4JFr51P_K~dyQ>V=8wc%YCQ^OLoT>J zz^DZ1l>oC!EWHZMWPrPeD7m?Owl}AeS!c-;o+Q4npbd8}n8wafg0M4fdXol!Q&y~3 z(6l$h&Vhc@@d;_e(qr~a^t+l4JtlY+az{Em3Dp};rAsV}_RbIo{fGd~F$o9>r+$J> zpggbLDZ>1dv1TL1?ewkXit08avoYdDs4gwwEjblHP2VUNdV`0 ziL<4#=1C7{xQBzi=q~O*PnB2p0(esBCfO20*doIt;O&`bk* zm4mL!-dsSJqCTO1N9vy057nEqXVIjzlbqo8SJT)2ay~mi0mz~BMzL%;ExlGQ^vcOS zQDlY~JUVah=+|xVF-F%o_cRe=5R=6)>D)%mhmz~!yewm!made$Uc^&j+xWRXRAJyf z3)PYAR-1 zxEP3wsb~*?Vy)wP;n|Hn`*p=*c1&UH&cJe4G}b!ZC!-5yFC$89Z;NDN_Rc(y3D+*{ zinWgF*)}$6smS7l&HDC*%TTTb?PeKyuT zz8aLz25y&Q&1l`U_h3mz6}xq&827DdPR_kt5D6xh>#$m903jg}&zDhxY zyAxEm2qnZ+k`lEzn94{Q^t?|ctIjr(5y|JaZq&PF6|yS#M-3+1nvr2wEeqtXy?1Ju zOgqTbOVsNIRf2nq*J+H_C6$qvAaa9@{K4SJp9CV$s9J!OjC@#?0;sS}riLm8cO3VK zI(c36?cpo_F2-0}w$*N}DUPhutgFeNYaQQO8}JWp?P{$H_?ue`twRF-me!40GXejw z*3Q;O-=Cz8x&p%)^Isw+dg`xf+M|G;FD!a@H45*pfKTdGN@9kDifu7Pn!gS{w|ZO7 zk;jRsZ)2WmrgGBpRVrpkgX&xj`EKjgA(0sSUgaP|49FH)hvRyOiSZeV!Xa(RrrsyT z$WFP#PWMKAjLxm7Dm%D;%~g45`H?(~v0fF!zE1phb|tJ=?bmQ}(j3l|pXzHB$xu3b zsC0(@NII=3t3lIGXVhrz>fK-(YpbQ9{wHb5}p8NM56gmu>qA+MJ80u`)KLgxD@&Lsg)=#566d$wP zj89t$ANwUd5GO!mxdk8Hc?+6!heg?z_HZNt4K@^7!jH62Ez{UprLhr&+Kh5jlx%kA z@M$aIW6wu)0yH8EW}9BlQt*H^x=t#{p@0&8B>BgSV^~VAIZC#`TbN*rN3extddDgP zuv=byMAX=T^=LxDB%cXE**Czqj3B}(W;;yB_X3X7i9SRHG7A~^xzlm{1yAuzx-DO(JEF0Zi@p>I z7w~GMxP+>^>{U1JgiaB8SWB{uT~WRrV^dqwCKU57Gx_SV>l+GMcE9bC<@z&a&LimJr6@FS6l`OZ|T z0l|_x(}XK;>CSZ21fD#VPXr%mmX}I~??m|}|H?YeK2GFI5W=T7Bm9flkB?xbvK^}` za2hLdz=!2{P6uoI7VbK(*#+x{ehfaAeLNLiCwyn02wo5zr7@8m z&l&bBqR)3KP*x<+u4fs_hq7zn!ae*Um|LN*ce;8IoV4tN5`40XhN8#F?p|jop(s-K zsq=VIQ)=Q|fDW(WKePvKwO|Uiz5C|IF-Q6L$ z+p_551b5d2hlD^NxGe6ni@UqqV!?yETX2Vu`_+B#k5kn(J*Uo0&zThpJ?^|y)F0uC0KN~zBc}+c*}AdjJk@$d^cRPE~&&D?MFVyJ-rpW)^TW(myEM}t&2?sfc{lb&pqk-}UY-PbE{lI-V$}INzsk};iQ7+^f&Uv~4uh{Jr@1Q8D z_r`V0OS~ZBfpG?hQasP}WN*g$-vlkEkH@lS$_jZ^GV=R!%7y5kPv|tLT_2ZbAC$$N2x=eZERdN~fw%XCSA~1|>ibA! z;lq&>augXClXHo!^e-ExhA81LIPjGH++#wSWVf|O8=lQt9<|a&WQ7m*B6d&VfyIswZF?y>IHg#O9ow_9r@E)2nd9_mnUl@)YPah+`5Lj@`V9- zv1}3L^@qjS<%&2JzGwdU^MU8DH4juE33&3TAai3N-TK8(yhvZ?pecnX`q#5(Z6_^i znq$~*H8*?67g4_caZrQ( zN{ir2&EU&z`e#4H*yxOBPb*H`AAztG0>(bnAic};7n*Z+O)mnsB)RS5Gb~!}y=FPW z;gOKB{7)g0L^N#YSat1Uej` zs7SB+p4JxqTD0hS$}PkEO+!#-fXb#}>A#9ZFKN3b^nW3&>3yv#8-_ZWMx}kNMjM8m zKb|m5`wn;RoV@~k5K~vtnMK|1HgGKNqL`lsOaj8hzn>0bawVZ|$%%fw|Cd17wpcW1 zGRtmD#(5YNhMzjv@=@=wY7eu(s?bk3TX5xF5Yi!?-~Do-N2?ooj@PHZY>)8ck&7A; z(KtVw)d*U5KMRT097oxQ8R!kuqCK2Aa)zNy+x^&`Ea+NL=Xl2WY;}$#&8e0ypNK{~ z-v6p_A%kmFDQK{M#p)=yhT13ll{5E^i1g@o_5Cdk=KKQopu2&rVj%9j27D)Ld=UYK>hDMvK zwy}PuAB_tIdrp);=e2p}iufEj9h0YhYWN%BiHUWIaXxZOlvYE*EwzfXPe(~tK6lp2 zYTviKJfK)^%o%17#*CTq$Zz9=^XGnSB(VkRPpa+;s@D5RFNf#J#t!LQYur5B!_q)w z8wiCeV+Ag3KlJv=JI4z?3LHZ`(@vu9i`>yH7zQPU9s}&Op8ydALXXQdeL{+u9kAQ? zbn=>R!`JANY2LA3-xbyy-R-nA3WF8VwF2aggFo&FK z^turqTUL9{EG3&Bsfh*k!Xmb`0}H8a7gAjIVv4&sanJmi*w*&{&{n>Yq$97{e?2h7h9x6<=w%32myN0M^gN_%G)Wgy67g4H92Py z!a*WxH6No%C5~Kp%R3SY%ZsQRyrC_J_ABn$Czdd8W8ObFZ4SN-<1aGLM_RE4f`LvA zzVyC~OS*vx+M|)>`pTv3Ue_G`szTWfoBqP#KDuM70*rtO>$y){eMUIrQ^eZ?79+7n zd8k)(mHF6mJu+!FmjY;K+I6K~pVKbJTqycpVHx=yp2=GJhKzN;SvX?Ff{PE{w^iRcTMlFGWH#OqHy~a)-1QAIKq_{cli2!EzZvZ zizB3-$qoPbJQ4#Q=dOoOa2>K*dM*OuzAg_ptm4hxAH61p8`0OBDs?_dmC&v*{s`o( zQlv!|MPNF`P3*16=hlyBq3r)B(OlMS>F0sbxC@5AzLH=2U0{}nA|`kF{DYxcmXIj> zgZzL(Z!mu`vQ$eAqVE+@ZB(u3K2WTX zZcGN~;3wDI>eq?0OtKgLWs4md%5zcukzV87=(L8x`#3|a;B$Dxtrm8m=Zp8_@o#!< zU=;CZl}3X3JK(46yn#hoZ9d~hwq5L`WbLNrw`<_n_{9FY+Ffe1A=PL+8TKI)CNb;h z;=v)OO}Pf+NW>>o+Gfv=vESa}?;jlFJ9Oa!rQXlGDdSF+JXAvLbm>hkG4U%9; zO6_6g%0Kwj(>XsxKXz4VS>F3{)+if3Fet}Hojh5Ei?aWLH}c27t(l>H)2LW{cX?H#&7-g%uv5a;`0 zzwft76jlG5`yoko z$zDf7VKX<(@0Q;EnqYhu%F!;zLK*ou`6H;`W#>K|ePGJ#nUEW`4*gilQc-wk9 ziGl$+hkcWZSJ;f@th_|WFhG}|brbTguAIpiI>1LppC>-O*B>9C#t3M`=x>~}ex~W^ z1!s;m{P{)4m{ET)#1xxx7Hiy7jBQ*oWewB~Mm0QKRQ8~xI*-Po^+tHF*tGYo{5;}E@_KM&tVd!e{5?@>Em}kly z^CJX-cM@?RW(V^urItYmt$H&N{`jM_Y*s~b2crE9GLM%efBLERn{#_0M5LI_N$$v> zeepF}vYrA%l0P8dz$`QK#OKUH}c&eYTW3P`B8Ricr!^R&NgNzYV9vB zRURN`IU!`{V0hTpu(mE0po-zq>!HhiaxwVrcARpQ{+|-$z>bg(`ebVghKUt>(bK;=Zz_ z$&Pu8EJif=>>m9#OFJ_uoT6dd3Mbnj>B+X#zj_%l`Lq|Id4R*g z#04+#i6nJ{B#etO#b=Ef`gWG$;H&ms7F3t-SSHm2a}26&bqFOamC5DBm-e8p0~|nH z_fdJedd4CtM=#BZZbe9~-)BWxj%;zQdqyUHqFOQ}G1qZo2d(S+eAFEWej<0AdVW7O zexEAQv<}~&!Ml2i32=3q=+~>GQ$SFO8D=?ascL)<)o~INm+RNepaA6!`$;!6WsS!) z2f$9+`W9Vc%sok#6*7cgDC}%b?g;H=9J~KW~wVOEunEJjIY}KiU?flJE1>0Ov(tRu-O?!MY4mz2Ll>vY4IHOi`z{ zu$@08LGJUNsbE4IKtbqP*}9VayYqY5mcB@ZryF%I#Gz&n)54?nzNs4-H*h!ANURo5 z?^yH~f9V0`!!ofR{E9R-w=>tv94+zalgGf=(EGO-4=$yREc)Bl%Un->r!y)js~-bO z29P%siw6Fz&JBk=ze0p-IdM3m&0T?qwDQ@fJnFIEoETba}&XHedy!qfQzbz z|E=@JfjL07G0o~CE9xxb{>3ev>5M~}WqzbF+4%AVGKE?wP}Hg<9TDDf_f@7}sUM}j zdYL}P&O_jyXf0Sh4|1ScoPRY1?LO$g)ei+YsgTtcr)8Mv)kF6RSm$&pane95F|CU&|}4etk>q>{6fo z(PGd4*qa)+ui&h@lx~#B^^dv?J_K8XOoEETW>LAI= zX1cp4b$Z9ORDE^PLXT>?W62CFP3}=HBHB?2nI{twe^%u~pOx09B{I_q-zlf1ys0r+ z?@8s6rEWtJqvJ$b6-RW#tIzPvlMpQEzp?$^dmqRlzc&Pv>OkLG)hz`{3q9R@k2WKN+rzS;7 zw_Jv)pxefU#!@&lrai_&VF6d+Aa)L$;U6uLGe$&`9Ax1Yf2@M3)ncdZ)~iiH%S4v3 z{_#=ks+>P5&YpO^;^?=?9ei59(3x|~37bKzf2z$bJr%`Erm?QS=H4T6TEB}XIpljp zJ~xaeF8)sO@iR~iKSty1kXrvTFt^)%;lsH|T9bkxah753dx(6Vdq~p-`?+dDv2xPF4-7LP8n$QcC;IKm|MSwIGTT_xkKf_sx$ZI>z|HTP7dIVQWs<9 zZ!5FA=Fbh;rLF`0tcZvuW-2w|>>Akj-JEB0$)xbxX5h2t7+I^H9NA3+Dd=aj^UuKN z&pe{a+gnTFerT_8enq^VW${qY4b#qy@A?xmtxL(1`1Fs}9$FJB<_%t-+5ZSir^R2N z%nh98(xnwRyc%gZOHjs4pWZwVkq`>K!Ady1OXXCWmqxxxGUH7mn`XgD#3QieJ|qg$ z=dIdJ*cRV0v5wHk4otu!O!zL*fr`V78h1io zakPNGClcGt^pi*6rqD8M0KnjdG>Li93$GlaBCi}0u>2cA@Hjd4mqD_Y^>9SrtuL{) zkzFR&&%>%-gsYO|CG@2|D`9RmHH_Zy$E`)b7VlXSqT+_-By30yp0xi8`C7qRSVti4E; zwM0n;7Aof&8yb*NSm>EV5uIC&+R&pBT{ zD;!jcX%}!ITGM1Q-EOvns}*>JsdkLe&otl#5Pn=WBxgBtXYq5N>JwS({>{5&6+%+|cOXL=btVyqpLfNnLd_ws@uV}7t%vi4vTeJ4?%JSj&-6&h~LpK+2W7b_P z1@}i~+jO2G8H5w(a+Hg{@>qMJ-LB*1*wzlwUgD$=%y-^yh6t$ce0ZcStrs;Mj^A(Y zXKg!M-z}Q>R?s&fg@;_EG;BZl+oS}b2cqugERDDwZzV!fTJwl&pgHB{59;fQpAJnw{h@zEo0Ad=GmklN$xDn$2GBU;OVv| zd=69fL18P!g}9y@eY&{-KyC06j6!CsT{)SsN{5JQmg$>ZN3N+C2q0lRD`D1Kcpj|L z7^E1Fb$nee`sGDSv$=I_p>}PdXJs+%Lh|_4%{DQTmk1BBgLq3557Xh6sEsgtn54Rv zlP0??d0qC5#^tvQ0NLG1AvijJoWFNaodqbgLu>dIt0hccOgTe-jGJ%n`o{VTETYR2 z%X?K(2Ed|BcV-y=hiE6Hjw`ez{-P4-Q+pM-$%Cg(WWe!GB8HuE(VP7a9A-lx!%CXM z7zV+@%6$I)I#OL3)#i~RFfaI>-xqEW!cL{~jhQUr*L#`wd!YA`E;SMgxES$FCcev` zELD?=t@3tuMyd0>nq34B)RA#r^Woa3JvOh20&NJzJFjCbe}0U;?_4G=A^(M-vEVQU z7Y&l^?SS8e=bEhGQYmewc8=1Vtc#`;ajB|bUUS|k6Wgq3$+pj3U>UCuqs+9=G#=U0 z-$Pa)y2n1fTo+4TA?S*d!UDOwIu`vj)ST>Q=i1>CiV7K|aafk-FzoYZWq$mtf3Cyu zUbt_~yCfT{e2Td;n{6xL#=bNA`PbtDp3MgTp>-+aI9_+ax70&x9j_}3Ukn);5Llwp zMN?|D1DHM)%bbAe8tpwQSG_(BoQZQABWOf%Jk0bj7qV-de2{+$i%k8i>Oc$M zXGUd~N+?fC9L@N+(!Wg5!|R?~fb&TkEGShyEK$1ersEYWA?t91`?YyZ(?bvdg-|0! zY3|MJuw!^OM~wZ`E7_>$xouYZaN8WwCe{eJX;zwS)OHnbB|RO{6n|81$~M%SoTxy# z;sHGZL;HBAI^!SpfH$>KvJ9y>RFEWnZ8+%f&PR`hwTkUkkNmYxr`@^M5O^o4y}!7s zUjaHG^i|wrt9ds8oQk92+3)tv>Bwh?Cdn*o0M0)d_*>-Yo|HxdtfZC6Z%0KpR-Iaf z9g6;>GO}mA_LDW)60+YU$^-@{7Z_|u8HnGN%WF@%j{7RJ0)h?@M87}Uh zH~fqlA#Dka#{{(4m^iavHVaFVcC-lvFC!hYr(xrfVkOBobG?DkFBVu3Nxs zWmJ7yIr9)t!m=@w5;@~r?T7GbZ4JCUN!PktP*^B(K&4i>^@8X7dTh*jKt{y!7xisR zN(TIk(DuI@&3%Q*$kR%k?MWr|BGkGgy*-S)$s)9S@e)C^LaMScE35$b;h#U6w*v%| zmkqzNH%INot3B{0FXLw^IbH6>Kf8X|j52mBJUx844gX*y0@KWnG*p?{LXk_Hkb6@vr80W`!)P=5nNNp++C;3^e zcosP$*oK+UUSvqxn3jS%4EqTrzLgV+&6TN6+2>KvbXvxWz%A*#|Az7YX^{48#_lk~ zsi7>wX7AHV-J|`1>Bw0>gY(f%YrUGFtWXd!T21R1r`xwdT4>m902`6ko!TVd0R~5O zhjXCX$Ok{=M>YhKmglUyMGASZqZfPi`rWt$(0kK;5xHSl8=n#}HSD2V{ey?*hH!~+ zC(Y5-e^`Q@$=|P0s*K)0;N=)c8UFN$qK^&Cf67waLq3a8&FsEqu5WSKfE7Kx%Oeaa zM^CeJ1-Z(C$@ROId^m?ypf!B=8J4seI<|pE&WoK`pOI*XXSB-pXjaU)Tm0$B$|>or zziO%z2o`Yc*r$5xz_ErEuiO8roQcdyjx~>?dvSsVScezWp|34yO}Knm(77=DiRoGq z?o&rNWk3LoEWq*i$570?7WAY2-=`0KQR@je^QqT_A$x2Nak-a6ZI|n(!0BUzh}AI6 z$z_|=&P@h6HO&FwYK#`@jb=s#$32Q1h4XVDE9a35_U$XUpXVhC=ubQf<}h&l99npn zo)n-^@{JZ<2)<`I3EPsLxBzpW@f9BA`mxi3a)G!Cxc|LfuE3(QU+-|gCCs1g5I6cL z56|;ncX_%_+fVkAGI8U9(cpMWDUfCz{U1T%nOsKBO7LpZYwFH2DV>tP@npf?V6^4* zk#WJxg#b#k+!J0xxoGdy;;%VgSctTOT0oi4Xi-uuT#Da@=Js(<5B> zQr$vEp#0*iEOS^>mTTw}D0fsjdqSJjl34`u;otXHje)9~39@Fq->*&d1(n+p(Dg#? zd1T-7wZLL*)+zcJ$kHuc#B5)FX@@$v`QxyJ=S=l0fzE9Xe1Yov;GNM=u@sdYKi0_q z47s`7`zG8O1njoNs<*^Ns_)~7Um!cNh$gbDw5_VuX|?E zZw0j2tSkLcfYEtKJtbi|wj+oiB;`a=>{%6!D!(?MfHu|FynY;koGtV-a6>Y>wOFO# z%r^u|RZuz+ze=y$zy|^Z`f^L=n!Fa;MFpGkwUFuH%dxY#E{^YYJ8T$pd z%uHqLLP(W(j6C+$@n#ldd(CyW;d1X+>~gj)*s#wiMg)lFl2`mK_ zhOUsAguZ?aSF!z~SyQ|HZwI)v(O-X8AXIFeB%`~&)iE0mLfl-)Rm-7Fd#8?8-O6qH z&p^y?FpQ)!o{&PNM_UnyNypW$0y=~L$KIAT_1!8+D#56xxMKHLdO z`mhal8HbTRrR>`N6){t{%D4d4yF*{6&oUkSkW&b1#gv?OLy ztWq3fgRPdKsgC?(<#~u<{J=GzRA43{=uDVUfMZD|E9%s|bj(IWj5-48Uvm{T#A)Tv z`V6r~IeC9Tb~uA1V|+SYSK9AsN}m_CaH8w^G8u~ZWAZLOcfm}Ouy)XC5sH*%;rwm1 z!Pfy(v`QHHwdgV=aD*lke%5P-I)8aP=f7YiGZy<#$;xMa%7zQ0O_7@j$b`PXCx zyqJoiAK8j!?mO?2EccGGbtD%Py{4#=38bkew;?m7ri$%&3SSB=g?zA>bBdWI3y@BcDfkh3TxlT$k-@n)}*9bA? zYO~QQ4JLByft1fHel6DbnYzjf(;-&}oHJYXjWP`h34>!|X?s==vtLkXmXpQW^_`#> z(DHkaF6P-57e716DYgMkr;i78Ps(13mjkJ)B);j_HcNkwV`hw?4GtNpZn3R>zJFFq z)OB?(iyx6LZI^W~i)TQWOwy`;7u3btZ^xthTi^8>g+_qo>)bp8^o&ZOzcoQPqhf)r z1Ek81lb{WHXJ`u6v{l=PUT!j_zodf^;WAi9Vi7145kCgR$qN>MEU$3#Vmietm;W-iz)N+ zy;2leQeVY@rfarom#Ca7L+T2cINj*0@2PGFxl$7{j?91Y?}z3J4l63Pj+k4}89t<{ zE9j`IW9`(6is~fSh*22wTyQ(zEJLtRA#h!bJ%g<&F6s z&Exp!mCnJYa`l|@*2U4gpdmR2kicf#_@R5?rR^GlpB=T%szZ{=ABx?kk}c{uSAm0s z3CEsnGx;>t5aCS_`P7F2wT)@s(_GnIv?h}TFLD^SJKeH*qW7Hh^qHhwEvr^})?89L zq_YzxdwHlyF!-uNG5f<JwGln`z@QU-{6~Gaf1n2s zhS`~iuEU>;_l;Kj88^G2)o*tN3Bv6zc(aPNsaC0|m3@VyJsEnVdrLM8Tw9M2GreU6 z@syu~^ONTqjx^)AnGOq%P|rpEO6^R}`6$JRG0jzd`@hK!ge3{dz2)t5`dl&IDXN%( zsj8S|*UZCqkK=PfM0|@G(|SSbBhviR>EwPY((ZbXL3ZWQwaIDE=^PmL1qrR_H4{zyP$Nw-Epu*BC|XEr6RHA$y@NfenA%i7-D!p+CgZkyO>XkN5`tlo zsWNBXw&nyh1G|dMuLSA#d$X5TW7)c@B&TV*RT(!AslbE``p28L6=CsaW^7;*rj)Num3QUlfJO$IF))N znU1r&Tv`9uucUe0&!+|Xt*wX!NRhmUf{m@1dCC`7>_YT*(UayLgYWCu+V5w^_1T~X z!hH}3l-^(q@`~?H`)$Qaj8DZndU$!x=g+*pz*E`vM1CBR`5n+5+*U33SG$xIsmz<# zETnn*`FUjdKq_xE^AuX26e(_3fv*o=+u`)Y#4f?|w>2$AiiTf05eo+sRloG94m1V8)r6&#bCqGi-2XcpsHAIGTC7Ri--UE4 z-Uf}=43Xj9S#=G?9x>CZ(l0~#Z4M(Z)hdnSXRV|XRr~l3f^(@@=U0-z4*Xp|Rjl$b zRELk3l&{L5@spMla?c&g9S-pePHyIA+)9~aN_&`{s=5)U`*ISQ2T`pf z7%_W+&a7APsYV0Zo?wl{e69F-fqJ@H$iGT@Vccxi$9^E3{xP*Cq%Z*sOq&{go+v-6 zTfP06MRoF1t%&jv4fLrl9l%f`VRT)7;Q=2KeZQ@siL9rf&*)(>E_SH4$PF393Y}8P zwanUOK3^t?zd=#HUuUZoiBMn&NxJthC@!OgPl*wqFihl+#TsSUDA%jZv|zeC7c%*u z@D{FYkjR{QO|k>X<_vsd0ZmZAsM7td{YXkVj8g7Tx%^{HrugOF#3_eXD~Ai)ZeX)3(ce&9!LR1Gwz9RjzF8OMBxqmK&_-l$oP?$ z&0VWFMb5Zx;F~0*P*a(C0(`px)sQY31xF-lfJ(Z-FNR|thYH=qhB&*uCDGwjvRv8I zANw>8xgiq4snJw?b2cMLy()q))Q;Y*Gg7rbCXRm<6~ww!c%+#yb7?3+BkTMQgEmoM zg)*RGj{3R%JH^*ei4O&FGm80J4Auf5Tjp!i1K`tA3S z4$xez{w75%6OzihGZsn)6N#$e9}~mA;Ek-{7lmj6^_Us$Q`}_L=C~k*ISwY?A!yPN zF~(3`?}h+@M58aoccYpQN_#G}ta1=mBI*^Z^2wCKFIZqWg+y@iV7( zUW?*l=`?>?tPQkQadB{p$TjSr2frdiirXB(yVT>yTg&=5CY*B8`H53`n)0K^dMah> z8u>ov#~0B9#8XsP{GqCOR|&I6vcj5A1=8^msMoI5Q-ZKWUti^&lRA4zbciCfe}Xbe$ON^ZQZ26 zP>WGP4SLl^itS%)lnEXb+Mtz?w~val%*j_2=)xFmIYBCV-u`jeUu?1iwgLVZTEquZ zOM>RcwV8nmm%2s_#%bjb(rFV@#a4--Lq)iCxQa%jU}bHinzr}mdX6dTV%=c2q)nD= zQ-E*jXzKPQ@ZO3^Z@UyoWWuzt-3mN#gd~6hVBlXt7a2^#WxCDVfhlf&mD1iL;A(BQ zr=6Ix(-)<&mc6)6&TN(>RZ6XW9kQ|;CfZjkvD@;ta96s}Sz~zZ&57isJJH3g>>a=f67=Oe({Ew*;X=(sB`!z{L^FYf z+cFn26Kl^+_sGtZsqa=4HRrKQ@Mdj&H-t;?n&~U9Cbz#ZQB9{VFmvlD*nArUNYvP? zX|_`VY-VBfPvxFrRyFkI1U;3v9gg&-PAvkOb49Y4Y9PGvg`5xwUg>XQqhs!8Fh)`rz1u@yOBR_2FINveMSU%dFI@UB12HKMc*ogt-e9D8h<6W2=Kl zg_FVvOIFH2S*!#`u8xF-N>=WkRV`*j&WwAQ7x`pMsr8{3)la{bTYqI(uM0;}`ti{^PU-UT`xU&J;Z2Yj$ zDkQe-F*oj!qYTI~ShZG{h99Tq93!J;*6;$4{}AA#2&A%T^owHRS;JOpJ_T5J6OxyT zF*fQ7LA=TyEV7@{qJp&#fR>$4N%vRP7XYw$wTIOYx8!@;k#G_%qqo7t2XNz_U#*P_ z&=yF$2=TEh!(CX5N~&6g*FNEA z9UFlbVYJ{$gEP{xqn72asBy{H)S^#rs;B*a+KxfZ519|k2}rGz-<-ZqYmyHoq{g6@ zneR|^v+4O$PPpaU?~+%{FvM)%J9&(e{v}A1xvp;Oi#jEk7R%XW5KT(1(OoF_Fba|a zIgKR#I%M%i1lj4r#4m)PSB>Dt3w&swF3i`P02HnVlNXFj+>`bEi}Y(!KuM-~6byML zh2cT#4v*9-YCPl&Wp{qFvNYqbA3l&Gf7cspI~|MAc3P(@k=#R<(jb5?x0N!)DF!z#*p|GqTy7{>+RKx+Lu3 zd`ne9H9`F?CfBxj6(VOFYT7kEnR{Q2^R?Bro2Q9%toW&>ov|+T%PW>G#jca`r+&|9 zXVv)3X8nAdVHs8F=DLsR)+Y)8?;Rl^`THU8V9-S>)5jz;#$uo?2Ve7`29Tx8J z&xc@Cu^J>t^a+racMqN?CUNNiMN#ng_#geumWiBShKIl%?m#-J^UEB*liJZT+sMrc zaL{in7#Bbc-~Mf@(hyRBwBq@s`qqkkYIa=N_HT2su~ey{zHd-fdq_3XN#zTw37@{A zHH=fuh7EsB79vIj<+T<=!WZ&u;qD(?$-TPDaVC_jkfcL2yS6;=tD90(`|$HU%ei(a zcjT;6J-8ZXsJ;8diILzug`Zv~Vgc}$^zH*gL`h-h(9uI%W)RpK*t|HOD`E}k7lU$Z zd5_^5vt%B?kf2XBW@Bn%JaqM~()T@J;%8+`=tU+|XZf-5zSPytJ1-!@((V`t4DyYLi%pQCU z)H9p)D34EP67~_o4TOpuSwm~JhkL<>Qe|yG+u4!aZF2ydtRw~d0UUk| z?Ja}@r6B_(p}^WHy+T||fKI8=Q6hF(ruD_d?{#nGhgex@XI~k93%LYT0 zv(I31yS0lKidqd-K3~VN;n$k{>YZqdQbRXWR z%?fhs>IOY;?~=llnmJ}wpKD+mR-(G-2zVnYURHDh*O?_L+h-D#&!VUU8m=(1dUMM} zdzGt-pe(7w1YUspHDUyxaCkv0d#qllS{E+t;l>(GnK5hX!E5U3;bJ>db;{%~mugo#KB6y-@4MQJ18Vy1Dtl9 z0#yCM^p&B9JdBuB6s;-#=eqs}J8jXT+H0JU*m@~3^|k7@0KN7n&F3z^4_KiWOv*+R zvmB#^>3rO4r7n&LJ4t-$FIsrcLi{DNss87RvndngrK*8y{Y;j!m!@J-S{QZ^GC8(ky*{>ieKcU=%r z(4<~Yteg{M!J-{dUgY`Vq1=z6Hu#;sD|BW!R(qpYP0j5kG=80m*`r*zdudRfAMbS( zsv*I$H8v1azlb}<>^)6n9dOARf;(5@rBt8~cZ|C;9rp&AqYYtI{2s?W1Htu9l^IH8 zK2S(@vnhO#th`q$a5j{3>h)mO!z`btk#f?E8=8*_UVgW9$9bKsfc3YB;ybz+k^pxV z)eB*#p>0}+Oi423w&*@Y3H##Xaim7DA5tq%ER;khZ(V~=N?Cr>3j3lIV6=&Dua@P8 zeSlc2Tg;5L5Pd#j3E4>=$|L3V52Tjv;77h~l?!9|%d@b4s?JANT#KTQ_qhn=q4ftk z+)FG{>dXD{pNp3Q6JM!aytptjryu>4BF^8WU_t&pj=C6iAx&i6nxX=9 zq&g5i_`vR@c*!J-(F0H?Iy`XuF#fV`-3C3ulgWCL@r8FvuKsj}<7_-b$9+hAGxBq; z&Uh*=GA@|6xa5e&znGlBnEk!VSFNp0XZjqn1w==DsFH=(`vzk-!MarVDl(n6zK23o znNs|L0P$qZ%MlHXla(jl^9gqELAFR?{wFJlTdnmK;iC4%hG$9bc7s1`Ny3T6 z<&h&MJArGr5v_?lvNF*G6I0H&R=l3;d{)ZF+icU|0K4|+{&PFrr5V|?Aa_}?aFtJt@aZ%G>TP(6Gve-hCBCCO<8|E+d6lYeC4vR`}w^LHMEl!>Y}}(5dI%a zFS3(j?|jjxG7a88C+kS1!xkXK5B`-=H@I&X{3*oYU-PzD$?g%icK8cGd>p^Bi+^sF z&1&jeoA}LaejCS^$_iRjCM>M{e%q^j!SnBr9ij6VqA!K3I=xq-m-zvmXp7CumEX`a zDo@1!yf7(w7}sqqFE&B89OSj!$sZCrZYS{<01C|8zINQu`5NY3>wowES{V<&mgcu( z9DOSOaEUcXhkks7QgmAa4D;k0^wB8)RH0gGpBotRz9?{WV~+qkegQC;P5Rw65$U*C zI2b|8y)LGmc>t3&UbsNNcrI^n0m}`<1&o{I@2% zXm2kcuIreHY;^+14%Zo>o&z5pvMaEsO?rrlkClIQ)(b5>skxMQdtMhgEausGkFUaf zEDL7}`RZ;|H^y<&CVMdF}dc_+e4r+#)aL}4= zQ`$H9^kUWr<;|@>%^ClXq$`hy^85Z}N%kUyn1m!d*@p=g5enHETgjF+yO|^;TM{b6 zRJLR<`!YjzGWLBL``8DAF=qSC=llEToO@rd``qU_=Y8(;oaf$i&*hS|VmQVIq0WO3 zy91uTC5$4!Zeo5?S^1`Bzc0i9hiZ$^bBvmYfYs-)ZKdsZRx(1>j2rCr$;&6ZuGVrT zogG&EM*Te8@c8MVeCE>B6%i^<9?NSLn3RPH8?KE$D?6tZojMv!sdxNL7FbL@W+{z1 z@i0E>hjaQ!1AL{R+`oCeC(gg!d2^&O=9iQ%HiY|4Ig}^}L$ zH@X>bAcfgF#6+i_u5LF_S98dhN&LV+y`$TT>vY=L9!wwMELIk8Bb#t#9T&hpIC%}U z9zGsd0j}{pIA$JckXg;r_^7xZA~@2-vU_~aJG-u)vcA0Sp5XbJ8uNSXFGTq&PNDzU zm2NK{RN@LbKO`q=kq}h=P+e%Vjf~8=Pc^s-s`y5B{9A_O-tYPv*|MtQ$~b2=f%qF* z4YWYBY(kl!D@<`Kja#Mym{xxe#qvKKxieSW)2ASATPWhZ?~C|XD?=mTdb8QfFGZ0{ zkJVGl;?IkrrK*o2A}r+CURjnfeRv99^tN}9&?&XokgUs;&w+#tGD?#z;rg$j+DKCG z=wG#$e)DlS9i6YaAWdi?J;;t(+IREsi(=5RAp5qZ%0)S*U5qb*F|G8HTxIwr$sXyX z?U!mPs;O1s96zWSf;Q&aqMUof4xdK`i6ClnT5sHYeg zF8Lqma}SLK)NuDDZ@+XL5t>0NZLBR(M(B6i+N;500Sq%0ay}A>ijx)Mo*klGXyq)R zQm-VN2->6H0Uo`rfRYeHad5#n|3o75krF^o>p`9}o;wiwPAW#_=e4@WgHJwyEk6@? zn%hf31U}R&f-}6rUT}Moabogd(dv}v_W(P&KX6;&;xTNE0O^`tJNGaB%cY7AY0ODJ zvNVTz*8nPYe;0NzcE-JXtIG?uGI%RKGgs+_Rz~Ct5aYMxHB3WP2BD$+Mmc!PL#^m8 zB1m{7__Sj-J(udyGFphfc7lFpNp@Mr&Fe(TS5rNQ+D{3q51Ge|y>eGzD@OOAu{fWr za{!gr=F$t>vu#@`C&jHk6;-}q4g(3__3l-*;mpv^GxivN7om16aQxQ z!=mkdR|AmbWuL#Ho(c}0^qwnG^0lJ#sc(7;AFpcY51lOApI*##Re{TC5(rwb!AT0q z@mmH3j>*u3tCodoV%a(ZbL`Al>#Qz@(X0$H+tF<|15urIRRYyIwrh}U`Lxb{Aq@}4QMCgFFTf{Uq z5q$PWUNgZ)TD9gm!7QgQD=qDJTI}7jQo?J~rayEz`enC@#MlPXOceaI{ zCJzJPi{xRX8r(fH_XtCHy1ufkQPIupxVLGt7Jcv+>*_HGcVH{!BXi$7iVXUF>9GDy zByx4zJB?J2rXrGwWP#umyaaM7GN(Ka)O#Ki0lrl?DKa<6*{ZG}wWj#lgkd#{bBbfz z@^aDX5lfNWn zE8C2&BwTugU0T=JF}(o28?mJ_LA(x5^;FTJWvNMg_RU^%I@~_ewrQ&Y`*KZZRU#vvEqR} zs!$eM#%|44EjgAc_^kO*?(ubWRZ`45razlK3~JOnzrKHrs?-Jt9!Nmj2@(2~bHS-8 zetZj>VFn+-_9R)p>Ix;U=Tt~aaHX7WI7b=Bu68CCUS{NsOpb+Ilv*(jf0Rcs5M$}8 zV!x0E7^CV@uK&J#GGOw!oO#Z1NoA8h*PO$&?Z98aJEW2|tjYVmcs}QtuPn%_E{+zy z=_gc~_Z=drx=0CO>r?$6XTza}{X=~4i1f>=9%8z7a-)t|v7})~;7A#L{8H)7@oQ3c zasj?JDBnh^6rO_~jbzbSFdvJiv|PYYiWi}4{33s@L;H+2H2kh$TW*88#c%-*E5V{k zxD4fg5iKjZ&In{bHh$&gzIJuqshUaLakx;@A0K&$iXKT#&2;BnMDQIU5G8-ofzJI2 zF3Qrz1)nw*A)6GB)%R#dkhJu~P65A1jJ$+4;{~nD5s_NWEI4`oqjW~t;CR3JLDbGC z?ATd)VXOPMs6O2=lpYjs5GWVHx;?!nkm9fAN4HiVI%`nfqVcUoo?{pNPXiUQewJDE z85bT>d*u*1nkGa%L#_?0C=XI2se^r!OPtLuxd&&BmLZVTC$LT>H25?Cr(G%rlV9DZ7wvnnd=SZL~;c%;w45rfm(7rUw|J*w4 z7Z$>|RmD0Y$+q3!_Vwed3N6Yz2x5tZXkwp3;_m$r`qnNKyBApL2!9=lCqy_Qn}f(4 zH*7RkFm&suAh1w3)%@ka0Vy5bRFdza4p#jeGQ+|`#+&W{n1@{~1Ou3pOy0x6UI#JR!JKJr|hrs}2Vo5(_)-TX_{ z@wDw_XH2{AHeXN|gK@X3arN{4GBR>CdhXwZ+IPReUup7`Z4=${P-$Pe4+-=HLdl&g-770DXTdWg3wGmSLueRm1!L*z; zi%oCpwbx!p6iDP-F?*lcdQ1=d22pWu!!09|f>+q8={3GNbd~;rh7UnG?`s}#%v6QQ z0{|3=Qd-5NQ4)397MuD-M!Y44=&){EkZ-biv6o{)5G6x#Dmu^fS_>|GtmH?PvhP30 z^>(qd1(Qg>8IDHJpM>R_XgG-e<8X$@8@dIkdUpq*2@&Th4c^Rhs|DI57)-c9V5;vi zJdA%zP2vC&>bSwN_RB$vo6MRi&+$R;^|sX8d%6_vB4^UBdKI+A30}e)eq1^&Tc*2Zs#&#e3Hx-T;gIW8Ii9$GY3}_F7a_?bI z)l)$HJo^1!aocWObKt#wNWIwD=vaIs*Wsm|lz(r5^bxnDM5rv3S-x+euJ&*Uz1HIw z72sxy;qIf=bf%MTN#|?Rci}((MwTQ~zO<>7rtZEtF;Ca)aRIqi>|Rv$iP+O`Cwpm< z2KJ+mz&~!U>>E8>OHBj}XvZfe$^`T{nn48rBQBY#~yhOpqi2~25}kNps)hp`{k&rr3H)ted^-*p^P1`93B%IL;2 zuOP+ctlV!+Mr{-c!?wTq>#ogE@B__HETI@lZfYhSYp+Pjcm-~bOJdkX!o;S+E_jhdRyS z{CO%F_L6J-Db&}&e(|pqq^PjAbDEkLv6}5~Hh>)0eWt=BUI*>BMX0pUPK|E^QU%cx zu)YLbRIk5ozQ*%Ja1b6fbeQ#I8CCoCcKd{_P;&mzUHGWHW zmf6NaxSd^C*s{BslZYeAF9>e>CU*M28ep9Let9kn+eTL4>7#N^#jgzz1JCg*v17aM z0L~np;j-lJ(<}HQ^{*Xg{$j`?kb@~&baS;WJQ6H`F1QIaA+9WNT@ULj9Hdz4J z(np1l7}+hnf#Lii$KVm{7vbX!{vir-T{RImMjdga){*paB)A{VAhXY2Eeg|Py1SgB zJV)_7DBPw7EFM9Qt+l^Ut@jOH>~MHZy(8nd$+8pF!@OI;m&LIw>dvVU3NGV1#EX4| z2VBb%a<+H8krI_BxPO;^3sLE&Nl)2!sxwk9d+whmMK0iNzbd) zo@L81@BI9y}>dAyBv zx1nG?z~Vx-xR92_;ql*|dmOr&@%&Su<5u4I@EQd_Evyd-+pREwG0inqrk* ze$`Mj9N?dn)nCb>Lf7PZS!CEL*44=!wRU~cpk|4nc@-}#NSP5+y5}7 zp+AXRYb9F_;axRsSk{Wj-i7f8emR1S$1m&|2HQROCw=Piry`@TaH031ikp)25M5w#Ss32fR{q5}L<@o(G+G>_y_0 z+#j~LjOgAS{9KTn$-fdY~h5 zB7PrsTJU5n!LI&F$TI%H2ks()f*k9rtXD3+5%(od{#f}h-;FR%+^ln{yBf!hEv%4d zFj3T%Ug((-9g`$|zPv~4FP|H%>;gNDeu7SjdZ;G>@wgMP%qwdQJ8c>MmtdZpX;M06 zr&(3k(!x!g)>QZZ*3#5@G}~sEv|!RayRp*ounWM;X=l5$j_xyyEma_cN8`?s6CoMzl)PDM1Ndxkq%g% z?{bkaQOvZRORVWuEZTSNVv#UWuv9;I>RQGPl2_5FlAB)ckV`Hznfv>!i5saJtl|Hw zsyl&)s4a0)3kY%n5uGJCssVpKLm~na{reI^1dDRidJU>hRlHLFm@IWC;Y?sI_Cd=f zT|5#Hr#U|taKLN=SRe#eAKR}b0r3U;EnBQqaZ8;Pne6yLH#;CFP?*{frOoB6j3CqH zF0tSf>Ax(tlHG})K0BC~BwZ!{g0)I^$?#*p7vhMd@ z$ycPOa?uH*yXQ@=xyvnf$n3i@L->@@mDj+jlLzJvFB5<+mXE!EV1Cu8My2gL4&t?^3`(F$psTq*TN%>_CdK%&?!43Q}t2u0Pmb* zz+mE|$q+j~iDCx#M#S`+Cc|U(QGyTao(TK$qwYGH`nu}RO1ogYeSjrp*iX<10BlY8 z!@wD|OlpgfmSr@8ZZ3+LDH{1U4lrhB3bZkgcyyWjghjJ28YLYx-%dk{X~ARKW2he$ zS?uLP^DXW#*0#A8yoiptVEU0)bT;MhuFEf=p6!5ITd;yCxk*eZUk2E$DBUt||J*P_ zEuM~(Jy%j_9mZFilGgSoKOL4xmr9T539TPss(mln_NO2lNTzH3^BUl)7ABt?H<)IR zb0rl!9|2YL`vwRRM)l)5p&lsg#ONU^EiM4Ute?DgNjn2qw;n|Kmp0+|63s@qgc*9$ zlckom@Oo2giNNC;JMmHp*Gh1`><|$EaSpJm@(I!XAGZV zyc*z~$pr+8AkYs@JBkaGCR==#{usb;BUMeWr+D$cS@hkV)SaWzSBv~TwUeAbsa%p@ zh`tPvE6w-%Y|n)$&fP{o1K;40evSJcbz4O4db0pV$-zmRE}oer9@;SW*h$$fx!TwX z`+GRBcbXXk2ivsdd>5(LsNOh}eOgY-IWlR;w1ixJPclS@4b8DqY-{ktBJq#v zKi`NRonmL5Qtb23&?h4L`S(!0t?arV3+Q5}NTS8Bm_7Id9(i_#fv&ZjMF6tGd3C8z z6sn_442~u(?f@^;o}7qCr9!p2V)KW9Cji1CX z&en}7+foG02CuUrJ%)~VJYZQAV1fk%b`p9EP*iv7kONv&DeBYhs~Ll@W@#D#cIAw52u<*kFd zdj?oF&IThKQer?d_7PM@CoH*@_4i!**a*i&Pn2X#tFNB00fi3A5q2ws_tdJ#RWcz^ zvi{eUF5FN;4P*L^pp}6NM0KOad7Q z-gcreRdAVU9mNE}aK?+57WH9?DL*KHf=M1fZD`zn<99$o1&=&vhGHD;Zt-^?*y^K4 z%?N(__tf3F`4uZ!Oso7Y#eKa!l9MdWQ=HVy82WgFZxh{j6^T~T03jY8|GJ*)Msj$M zv1jcA0q;BwcVt{KjXi%H6*n@d|*f0x+eKRQ~lmz$pd|LlSQTnRt*`gi2V3Do5idL zrVSOX*yM#nd78AK)harv6Uw1AWQp(qw#e#nAh*yHXh`3)4HQta`uV}T?#q`~0T;S0F%gXJy4c!kgj!xIh z>bXn@J+hZoy>$9$!?2;IHA`=@$AKnpqsgA!e)~{zz?;@VJ=K101_)oHajy72W=QDJ zEE*cSmpRE=8n>Gf!o0(ic}s#BCb{!1(q<9n9KYtC1aDj>qVo@<7M0Dz*kO(RI;2}k$5ntf`YFvDEWWaygoOr5K6|^*6o=#zsg&z2s^&Q@ zNCWdr`>|%-eb(68o%E(JJlZ_zZ{L&X3W3f~nsi82!`q&fG3LpNhTPFS5$eyHX+jzH zIYyIro@S)dG0k{M#_D}IAXhjPOYXlEwe}G6`*`^m8-{kL_D>1Ar}Uz_Hj-;O4kydatat1S6t zX$m~CDB_DZJDuBhB43<6zx!2mQ!r zx%L87{^@-o@FP0aRBGvewz@dlcM)}}eVX(;O9{bg@`OXlq%!&Cy>0jp*z(dTFYTX6tqwE9;VrURfPJ|pIsIWOrO?>F zip3FIE|HPwY?~-qzsyDHUuC&5I3{9o20y2SRy-Hil}zKZ{x5}~`CN0MCxdC=f=Zz0 z$5xpg!c#N!5^}`x?tlgQvaq*YsU@%4h~vH89&!}#B{R*^&tLo6agT0_Ntf1d=}=Eq z=i>GMhL#9g>dO2L)%Y@<^WlNBj%W9Uo+u|FPk`kE@;^d~@eSzP40EV_t|4h&T=7on zo3AY*0VgN&eeJh@v8zLKbb9hD`?ds7>7Yx$bq_eoe;ZZ1;p+ zm8c}p!W;^1a}RC_qT**fUv-W8D1X;(YWFM&MnR2rQ&uUo{1W)4nsK#Uiob7ym~JQl zm338cD+tw6#J%Wrdd?k7i{|7Pd*OZI@*qqx@GOIm{;we6%swvp zUqM8KeLVL6+a!9f2N4Pla>a?SqA)@&stB9=u_60kaJ=mHJf9@ z9riide2WnsM^nUxq@}X4L0ShemsUeorYsKMvci=|=!yZAnP2K^qj=|x_Ss*t4COov zCNgq<_d=P*7ayUs#yPS1T>*vI{^x=@W9!dDgJ%#qV<=iLw*?j|VyCD%Q%Iqo`}i_? z<@D5tGR_OC%vcwHnMKPb2buD7b282PUr)7imWduMIm@a4Ml_8{h%E+bPW~N{G{h40 z=WJ-0xHUK~7H`hU3e<>v9iFQML3(@$H(exjT{>oWCqYIZA1Ai1Bs>2q6IX;FC3R$4 z`H|?OEZaC*!%evw-v65TDQEt7+1r`l1yi}AWBxLohslqN>aO%F8RlR=QD3}jFo(E~ z9h(r6pVn!vshZ4pU!9%JN-{USG22%)SkYC&H-rwRJIPp>?k<^B$HtLv#;00g4~|rZ z$-Jlhm~^jVD#I~5Cix%q%~`J`m3fO3)o;qJ$oV(JvPUWR((kKNWf`BT49bC03RGrK zl;so}+0FHvuHH|o3dlV^Lg&i@&sXsf&-DF0^I$P&DScd|tmDw+iIrc6 zhZJ2(9EbUIkg|TBH=!7f{rHdkrV#>C>+25TJwfhiiDoDG7l#}0?;#weHvRl;FwhWM z+&Cvmezp}ZL4CHR@*janP}iD)-9QEE+Sag&8U+z0x*BvEaD2smS5t)VwH)rq59;9D zH7QT#`K51HMUom%^65ONG#i+=+^NX$Y^!w%vn(DqSt=Rh?Wtwa-z4UZdorPFQhp;* zKTcL7e`>RX^EehG|NO^qsudtD9acY4Y+tdixGA2ovxAGCd&ke^1d5}Mnt8p!MJmtO zFrfQyPPfP1P%W=3;(Z_cR<{!>&mSULN$+s^q1JC1~$<;X07`GqG`^itC}Bb|{OveD5Ayco6HdGgQ#S;IFg@k9o#;|;%e9LA*3LjTK4 zpGG}--Db%#)y+)fb3#?k6`Ui7!WOKD`$xwwBCeUmgofsZ-=T=q1n4Uu#cI6tufdUv zq#Xf&>)p{O*L>s0nXkgLFqLOX2j&S7^td1i=>mBh(DhE#(^EqK)K=8ycw^_{ps@cV znGt?scEH_^hc(W8nE)F)+zn;KU>HZO%OGL<+)r=^XbYD6dErKnZ``3y z3#y^#ZX*=(7|hbFxSZ#?9edE-N}9iP@UU!wwY|vxhFe63`!N?Lz|V03aPTy0AXLMH z;aF4Pz@cn}DU5A@^BvrCRC@#PJNMAH#vSko`j|xqnQy$A*erb5bm_YnSbZ=Sw>y7P zwaf#wsy^$ieXrh2>MUWUThC}mE(O538wBl+BwSl6o?m-}>E~RmAS<+_e!Ta|Ku%`< z9GmaR+j7nY+hCN|*P-J!JK7foo^vVH08l1@8ExH+=2L=fX)In&hMU+8wCjUhpgfOe z|Eh-yv71)xF3mmvj|;8aBQ)6uzvbNNAI*t#ACe6ySC1jj`|jSvG%CFaeXz@lq2t?# zJQ#-rmPbaT_`m}ym-_3P1&Nfpb)`$~_#js_b%JyifOMZAg`Fagu!r}aPp|}7 zE;IKs+JD5Qr;ULUEz@w_X?I$rZDml-dN0CA)$*vaxS_*Sk7G5tqNWzuQ?EYt%hsYc zHNmhzgFC?NiR3_=ggE!nvxBo{+8Qt1L9nkKNqsmvSf0E-cd1YC(igq#e+@#FPh{g& z;&K0at4ZoL;xMa6&!JJqv#q0?hnj(K^@C3W4?O> z*G6sqbGy6Dwab(+!E&2tpTXM$Vf#iJphGVuwUGFenGN1=GK;`#p}!+u2Y(C{uSfDG zu#L(3aWKg;li~vDvN;*62Vw5N36JmggJ|0#Rj4eU8S46f2v(01S72CR8C0Z99dn5B zAhUYJsOyvO8^refo$*8YM3(9{(e{c6{o%Ew>U5d#Y@j<->=DoRSf>v zHMeL2U7f8nRS|G}6oG2jcXNey8%7Kg6~9S@#=;icxuP#K(pA0+V5&h z$Sv1dhzh{SYglg>fS(-s+AY7j2TPB0ChdfHP%|fTaei~uz88}#lAIC%fl;EnON2*ADQRmp>Z0;3xX0y)G@fcP)O~Yi{wp>QOEfC8&*?kWBlnM^Gl#I1o?{ zDaC0%%Ci=$%0mmXPjae9VAzyzgpkofzu@>2W5BorF)PqP4d9-zRm}d`BU2^;y(MP_?8|8WR1Tj0Q_-v8wCq>At^zJoz$kk9n>5sGwCjJGHZQO8BXQ3t~1?_BmYQG9YdxSIFCWJL>S3<_$3w%!_^w@ld>g7G~oaVb8 zVQ_>yePSzuif;9PlBfKaqFGq;mXv)zxvG9ZZAN%SnsN@8XFL{~IIBxMe)rYMU-%YS zcg!u3RVAMc8gKzt3=G|_Bpm?dr92CH|4q^ABjJjW>+{h2WXub_VRSHFJ;yh&<_Qc8 zD%x(d_fd2wQ7}LsmH%hVn5S|Z;qqX+_ONZ%83eAT3}$t2_=xXCggW;9k4?Fu6u+0v z8F93w9sj+?|G2C_1=Uw)(9}7NXJiNGYpu_%YdM(mc~z)$Mw(8JcFstA*ILy66(-%` z7YS{;*Wc4Xh+5rA;+CdH{`W8cGg>AbEAWT^ALua=N??krn_7kxG@rk#%n9!L8!DNJ=tahU9zuF~uF0-N(ByT&GodkUYN{+cg)iFPo!UG+H3voX3?mm&qSzlN9$Hxn$(<4g=WYFh&`%g1^z2l_ zp4&4;d9JBVdYQHldW@^p`Tob-VEV0LCxIPdGGB3Si-6W-HHj*GDqpoFY*3|$03Ol^ zTpMr!U>VGLa#9Vs{=rTHb>XX=- z{iec;IN<~pzIZd=>WF<;#T6HYlG)uA@Q*~hAk71luyz7AQYn+OGmqVvaZP!~mqVS7 zv=9ghug_Ha-9y_d2xra7cE_3480Bv5G4v4zExK!pY6px`p!vzmq-P2_;MAIjuub^d z@%h{V^$Zwu-6y02>L+=R3|^yl=_19e@!_`wS05nm(2&W;=6|&?h8b*H?!5Bgztdu!3&^-55QAN8`*H5ULyZ>(XnKNs-S0qC!v=-iyQ!%}%wretK3twN}6jL|@`*d5bMhrnE zet>h3OhD%kc_ zm#M=6ejZsvn|L7Zp>4To?B$P;)g&bLW;p1-%0mE(ABvXQG!KJxfAk=@MP0_&^;Spz zMno%-TLv%}@1y&_P!`si_We;o2z09DabS`^0!fEJwd3|gR*k9)LA14ly1GJYJO8ZR zC^~@Z^~xjc6`2*ow}aeNF zz_+U3e6$9OM-?IC_eUmir00YGD~0UuYc@<1B^~DP6QV7GZn5Jh1Os0FgP<4l>fF33 z3vK$?-YF9Kbt)w$uoqK}*gWEjup#1bHsMh{j%=WV9Ms@Zcz;yStK4DSy$dZBv=@QW zRt>jJL>1QjALqfi57P&$N|Ms19qq@V3rln#sR-yI-~0oio!84zvo)`%V^C9>tlE^ zX97#vH>7@l0o)z<2B>a?8!X^dPl9ppb-z?-IHudd{z2WSTFer;nfj7%O73RG!sn_6 z@cJavwaeYE5UummnU#qrA+NPFajOp1WV#~{7%S80{@o~H%=@-Gz{gJ zd8`{nDeqS5K0prMsX(o|A(xo6poICDMCFLuwPUjBw#u*aU!Zb=s+yK!gDGw62 zj=)}pNi@#L5Atj2o5*tszvP}#rr&w=USB~ANadZR1r?L*>?=|?4~{F}E__ugj~746 zh52i-jZjyUww*s{=N3(Vj?Ee?3f$}XYqZ6xwi0e{2=3>fTroR)iGu9l(+ZB=P-}l* zgnE!~thko%`N0Q-%pV}bEOxMpji!nzSvl?(CE1oT)QK_B$B%60F}|xG-6gX|Cu#FQ z8oCir6C^7z+Hp%n#o>L!a4i(S6Xaf(#f1K~_5;mxe+4@&hI{>2m6J*~_0;&@5F;l) z3!Gg;aV3KFO+)A!xZdIu6^`a$5*+yyk+UIgm#7;@HWHPHDfH#D8>s)Nrv%j?N+}L^ zaJg6_-~rWuJj(1nxEH?x;V$TxNMjQIK{Wof*G~9%K|r_+vl!_^&z?HLN}J(}LK*Z_ ze!kiQ#DH5xqrKo)F#4t14z$ty4A??6{}!b*Ha_VO;jq6Ls_71dPLAROyKo^|T3>L3 zmjoQap!R94PjQoz6@Id;o5t@FMgalkj6n8NEll9f;$pi9cg@QfFeML50%FS{e&+Ywr6k3s0}_l_ALxq1>!hb0Cy%Ma{p3n!s8b> zzi!j>XXBH3!<$>_^X#^~81}Bt+g1!v9>z0t1-i~`nP25}Z&oaf*?V=NolpAuYUm>? zni6(xm>aH)I^ZAbK(e^I%pU=?pe%){!~sA!BdQ*7Jlbvy-Kan-kdH>()6m*t9pbe} zL|ot?`fYxyP(D^Y5f^g*TDAU;lNMgRixkx*A2qMueJaJJ`3RKkJ=?y35!=X8gS%k^ zxsGOGn}n929q^ee>WJic`BVsV0P-L$g?pTsS|{Dexp2u$G`K#OOc%g^MjoBIe8v%- z=c>OYE_-7X8)D#Ay@30n27a(j&-jv8(-t7**ECgib}hQ8D`j-l;qPIoD?Tlu5rEO! z(N=si*d8|PA)x(Gju!9uKi)~8=+YhMlv-g(m+No%iDBNCwiIp{tHoEIeEku!Ed6J{ zI9v{;ZgXl8b!la(_Q#Mm*|lgB>hSl#n&;GX@gS??K;8k}#y=>hbaa^2d7z*NkCt|r zkAoes9JcucAqIx{{1BM#)QdRB)!T}>;OAQo70aQ0)FcErryw4z7tDV*td-V8Y>_R&Z@FqApOUz zbb~1l-_g9G{yVqH4Xs`-lUofhoyq&Szscd(-AT=Ud5&)aZxew5>5jR7n262(>5eft z9^J|If$)nM%ux{gwTONN?U0U_!-D95q`|0GpO*>8=wF=m;ehKW>U*ui$tF2e5qJ0~aXC`sdq}ffCN&@NrK$lz%RrTL zs98Xjp()<{ERd%7+~IL1j@ohKVX5o0vMqTl_-2}_RziYExs!V8AlNy4awFf7HOg0F z2n_}gW&6Fvzkz@@ek|nR4gq&s62p;9YT8`Tp(EL?1I~_vu!m5}-BPr8OS|4R=%&QT zet$R+lceqe1y5vYUD=MXK_5RZML#1qw+^^eY~a&;aGWD2Eho_W#_f&UDYEAl)9)Tm zgrwaaa_Thl$KNF z!f=`)-tO-1Yi0GI2h>BsZFK)$#cvKKHO zH6P_4Wgm$42YaKH@$GMXi4K7vxzlfG_K?H7_LS^BQNTNbZ-Xh9{U|k)=+cHG?=`~D z84X85Bhln*jd;EZG=9E9GlSYXzx~~sqKEfu-yxAryO;5ovs8=k zAdzl?Q5T*QxJl0hm!SG{7s?B|tthuOFnF{1bpl&oJlaUcj_mG2WSQ0g1|GTFY`rir z{iY>ctMeETeV91a6ZlS#kgI~kq>zO3-^%c=R5pwIFb{T;3VirY2>nwd;MPOi9A^Gi z@B%Mo@MexRm~Xa(=2|-VEMUKr z!ehzW@3vLPCXQmJs7tk@fDTGZbu#H<+@Y&C4y4hixdiYf8t*ew-DdeK^ACxmX5Q2v zOJ^4EWzZ7)-*k4uJ>DDNZ^!OR*6MDkFu$EUGOfz^moSR^P8_>Wc_!Sx9brNyBU8@) zkRoQzD6C|K?T|(!9_uBDis~)^y%O8>%4XXXAGCSfb3V$4b=a6d`2+W14UuJ=RlTAvTT@(KwtGhn z50nob(#K6-$a9^Z-7VISx;(4&Pvs!dHEeeH^kv)S^LgHNZL1Z*r6m8_HL4D|MepK6 z=Bw^F^6iv(=Gtd-oX>)(A+~oLec16rge{3$$cWGE^^{5Ys1Nj8VhbHe58l(AQZ(x0 z(GlwlA1J&_vO3zQwz?0eZDh(Wo@_{Nh*Yly?G8} zx}i?nz8`(m8gI|%-eh?6dq4*)b73L%Ie4k2;n8n$bZ+3sanN*TY%Vb8L+|-?AJ)0n zCiFhe!R}ee{w)DGkNo(0e@-A!abD$PgmA+nqL*`Pklp=kRxp%%ewxt3X2%}ncH4`} zW)~$72K3WEpNjPP0P<53@uGh|d)Uu`Wwn0M)TfpHFP|KE!>M?ez3Yn{Bgwm@{4Qzf zq6XkX>7V4KIAQ^u(YspaUWxYG=E8;6oIt2S-0nrZ9$zTbF|JGu8Y?Pf8U#8NaY~f2 ziCqH`IB^`abnL*ddte7T{FLlB>Nj!;!(I*hc-szS!z`M~XPZsFiE6`4n&)-WB{mI_ zlx>ButiiX*5;#Qu{GFIc=AkCgl(Y3f!qgnbRP9SCEgwCPxViWQ>V^^#3!R27+ zw$!ZEksbxO<&`}^2mRV{h^)2Qz{*zc?k39!&7aa`Qx~SR{Zi8`&4~<%ny58l@!fom z{7ja8wdt0W4;!u0vlWcjp;i>_zxZ0c7bo`LnZkTEW6Sq?XNYaV!t-P4HTala4OWal{jlKDN1M8Saf8ikJO;DlrS)@D7K8uJ8XDXt_T1Aayj}%+6_Hp(>g> z6Uku8`L8yX_sS%=Rz@YY3F8l@je8Iaqy$=(%mZ5{jH?*?flT>4&f^v6R%GDS9PBFt z4l}(`Z%gxL+yCCpJ`$8QCD-jxM6-iRua|QAZoyxWOq1YMRpewbhpy9Cf=v+7hjp=M zGB=E3S=F0wK2D2daA)uwv2L5CGxmTlMny9g)Wte!lTxv8pqSZJAShO=VpHVHo1zHb zjOHPaKZ`wSWNpu`=c&HIQ(XD8eDVvw*ZGyZTr>J+*fJ2p3kJ}mgszu$SxTNQ1 z12-zQ@KIfvMPJ5}G%=BtU&bsenO^a=`5v#Ey<5C8m}v%EgyfbLSQMR9r&+4k6qNg; zPqSs+)1U7)-@&3rQhy}AN`v8{h=#ZWjGPbt?MiyWSU}aeO<<$kt74b75uYO~IZN=n z)u(K8z8pq?+fQ{=VeKRO2Cs(A!_EwfLE$f1i~!>7dZ{MPo2~^xL9V&lCTBUs6w<0< zHek5`G^|NDP0fJ!(xmR??WMtI(k@Wck?hfLY+KwFXr>~j23+3+-usxP^>!J8(&ZY~# zE`v&>TRhU|{X?}~ep+y`4{EZd(+zPAf^==4(#}(u?RrG02v-x$xP4#!_Lr{k|WX`zobu=T$%WYt&p*Hd5CIE zj%i9p*LSdcC3(%-!`6gCu5SM3KLQN0^AtQb-MAkFbz(@)n)osKn6D6ZPr}=+UrA>s zd9N-F?rX?2EJ?HhI%uT*iTsZ@J~p!la2JpZI*t{doV9$a*S=}QXV`W!a(p|{G!1B! zxb6Pc;`^PBUb(lQE`Aje|EA@B$xP)%;ZaR>J!0KpyrqKz6II^lnw-2=T(fvv2bYg< zTt2hA#eTvyiPrU~&Z?*IJ{)c7IIc6WeUE5|OIS<$+y$)+a!Y3h=N*L6Z_++Ksvl6a z<*S^65oMYp{#Z0(8Ml%9=XE`qWYXVfoVUtBH;MNhf| zJh-fFBXd8b==2xZe1_1!x_<1EL=E~_;~rbh)p9K6HOL}K?{K1?NR{@{R}DoigN%s7 zexM;k+CBG}Y$bDa+R3RU`9?45ss0&3tmJMFU6&Y3qtqe%PxGJP?@NUD$|L%BfZ(bJ z0g_TF$QrYP-^(X0mY)Ad(s@TU(LH_KhNuV#h@i9w3rGzJQlvycKtMo6dI?48MWmM` zN>y5r-m8E}lim}Nru5z=LZk+W2_b>hH~!v#J~Mak$>!|Y-Me@9erLwaj34H42h*?~ zYz-K_E0HvwIF-_%v>L3cC2lFGnqA=XiODNvv(%i_h;7$iN~+bFM@|&gJdeIKBKN^A zBKfCA*e53L|HcZ2bGe($Np%rQ5W1)-s!)>mRy6l3>LIX_t;6Nn9FU%xQ=)s^aD2Lw zH8ckhFO>YC6!w?sBb0V#GP9%pSVQa*E73$Sg%k1ai2a`v>bJE*54IqkM!lw^9Ncab zRo$o(ni)(2AE$aKC#kPAbj#W!%$WsJGkk^oDrZw|3xU%6wDW|mz0k*P;}9>2= z!oR8;=}WZ_CO@CajWjY4nq;J%VWx@&RQAoYtJeh@>93Eq({Wuh%&bI^UGjO;2+C{V zA0{`&C54=RfPTDq8aryM#Q&63@kP4I`gs(p#Q)PhNx%vySg%90&7yU9 zDonEQiNikCTHJ;yoam#;cFs2Syx$f-{a3P%DF?At@srp}<4^7fNSg~CVyxAdP#4)%<|J}Dz30Fx)%CKFB{W=;VX zwU)UkFK&WT?MTpL;rl%(Z;t2E$Ibqy_YIfLfl3B(pP3FGkHd19 z5UFfMPOe>Af5Ud_tkx+cjSedV#xl`k;>2s{qVA56{0fNhY)G@0>Q?y4laauMp!cRq z%6q)9OtZOvp9-oB_wt2MZki6GHtoAWr1+Uy1yA<-mDC8tW7~GW11QBf?qP2@u`rD> z?!V1 zP>$!Tg$|w{Zm?p`Xmy701Ol6FKC?;sR8jV**K=$*QHqE4ZPMlsf$Nz0iH%2iC?&K( zn5d0d-(d}r2~`jPs711dT+Kj4gkCxN^x!K+2AGYjevowH?DIqKnSuwz04?H(vo={m3`RMecmR(owL0EO_%s zEeiqd>|gKyvwYM?0|=**9O;=U29af(6bSA48|@}`L?I%LB5(r&6q8bX)O#3Lwjps; zOi3g7(=HKG8gD$LUi7C_UzV0|QM@wmqr6yCYyk~vm*Iu^3=Q9zd>w9LM>{`SP`Jcz zqd~j&&(W|&2+zJg4q92Xr9?xY#sDxylR*{u?Lxs`4kg=ZuCI0`7`~;PdX0*WCedu zpvEHsQpiW3?jcNOhR|jcol%0@3i3g43@P-?fcCav=${oyJfRtS_qD>7-p~ftadR2Q z3fD4QYs2|QpmjMrR_2fdLACek=H`&Z+EFO9QWUD$O8K^a^m1Oro&e7w=A(x%<#gAH z%<>m)C6r1#BQWH~PNUqb}(ui^Zr#RNRM zF=W`k;UzXdf(riXfA0erR#LWd7W{$a`Px9arm~INoD!?R-HI^7`8HYeTZ3vg8n;V) zJ;BWxb&A}}huvLYu1i9rByz#aL&Tg9*gza&w2u%ne3GLTvPT?o^j>8YKvapJ#YpjZ zOK)QSV^-if3`)6m*akBR$^WBav=NY^d!HwBUbkSu#>P%4#LTZA@nASUC!RWMX}2*` zAdQo&Ab~dqrTTE-4fB6|)td1;mO?~$HzYyEk+GA8((}*r0MtKUr20>$jB6v=P`=Ri zi=n4rwhw8dOog>TzqrN$`K>Mu9rqG@P?Oz!r{qXpYS% zDLi`@M$}L`F@{L}^fP_pHIQ=ZM5PIQyHg1AcI9i$0`%-gLdyg&Q?P+7asKD4CFNZS zp?em!>>1uTj4|uS+)^a=pIt5;pP*H7-FtDc#5OlCwQDvbyx&KP`Kh(^VOUPHAnHVA z`cMs-%z=~i=MA`W#92YPwc)tmzwgsz)6(5WP0Xlj;c11*zS$?N6J&L~m+T~cs`HlY zJja8TrC_2;>56s*2QOBGLr#-+Toj;&$(f~x^x@6Ai*I5~z&p6{)hqNcAv)M@^(~|c zhJZa=J&-Cdlmrs5Ez6lg2J`)BN~W}RRx0Zj%;Z(&S-&ytf_%GF&=~dN^q*7mc|u01 z=6+jwNW)CU;x&qQOjoMP7Q=)Kux|OuZFu^NK~xn@L@1c|d`-}ny=9I8AU|>>ojS3z zeM(*xplF`7CTKvTL?{194#Dx`Z65$dVkDD|8GB@xPN8$yR4+Sb`@d=P`SHBHI61sIk7yL{8+&KO>v%l%W~N5(p(Eml>BL_5Db}AN?bkXE zt*#+&D{hV{7cNV->hzwhIJa}%7~8t{3M!vB{%VNBRjF|KrfAVxxOe;t7dmn)taa$@ z#NTj?S%}h&0?aQF7~{XYm;danC=WuHH}0=E{S86x<3!|DF`c%nOd_R<^+(NG>Qk0B z(9S;;xC}yCN?)KsH)8_I<3KY#_{~B-+X5vizpPW`L}A=c__PSa1;4&k88zbRsl;L= z;U)GgP7bIW9`-{xBnHt&R}$yB{C2~ddz6I!Y{Nggn(Fb){KA#xuqT2-|0T7eaPm*s z2VDj?LR^*9RiptyLr~2m_N#}5DPia04v)mzp+!od!j#zaaffKP5YHkdL_vnjxws9w zu+VF9y75V{AgGr@hB)t2P2jQWhjJd6LYy34LS21q$kLS$sIDvl)u?;pv^Br=vh}~$ zF??hyCC`)T!~Tgu0mtn*sK#o<&OGigo&_g}XM;d|HPoY$eq-Ztdj7_Oh`WWlz1YP& zCpT^+jZ6O|=IaXojb+B1<@-?- z<=Pt)!Rt3Of^?18Ii`^xx0L%aKZiB@uy2g*xNat8hP^2_p^@L5Je8$uwZ9S!VlpVq zX>)Ia$e zf`{3#v2N+of6VswkqUl3b8rj;{rC`~Dm)?!$HaCeSHvn05KVTO9M*$F!~pDEgTn?P zYB$ErK|if0Uc*WHwEIu^0d*T%|N5m0FL7-(D&n{+2#Akd-yLX+MuS9jvSf&c(uioh z8=1y>ayK*KRE3|*@U5GDv|B?_7wYNn@7>be1M8~Hj9LJlq)TwD zQ_?~0m^5_+Zb_`W6Zcc>pw{)Hqs{Y6x^cdGC#zz$ck^%dW53*`eOwPVO?&^?m;5X} z>VH%>+VIfF-mMSU661+R!$3m!(!RL1slU7%FwuyVnlUQbMgvu zl*|TXCH&q{h$P|+om!FbhSfHfPBYPIhs7ZIhQ-Gx{)RbOZj_pY4T(YO9mC+y&Nwr^S1P+%(?hXW z0R3?GKXZ@WVrmBvE;EnaV!gj%U>?=}8m;TZ!TV+rlbutRG!cDy645^c@gXHax_3M_ zR~$TXbbRvK8%OqB~REZ+)) zrMi6d)^EREPlf2us(PnIp)1a!fxt3u(o5z!C`5noc0B}I21>DjCZ}YaJ33PTxyx>r zRJ7IQ$Y#2d+E4nPe$Re~7gV^W{|e6pSMN=?`ngWvEtc26);f5hETCbb;BlEQgS=(N z_dH<+#{}N0>Yy(`yT!zf`mJv_o(nw$gpBOM%#DiHsOK*ZDa&^u|I=uXiy`tYq<6Xo zBi`ADWJo5}Jt}hxTA^Edf_tgciU#d(3p9wLU@aGk!LZ0R z@D;zb`0jpMR;lWM5*bd075k<6kl(J64-V5$eZ?!sB$utmr)O`Q^DQ1*S4;j8yz}$A zCq>E(G7$WBqyTAE;`uEYx{IHq-D>Nob0Vkl-E2%~5`A7u9 zE;|+Hs<`hcc^R$*+8W**X zM$=XnJ@#q`r7bg7BnVyK$tk&Mimt)xUa2^4D(E_ds^`1U9z%qAJ-^yC`1Cz`yM{uY z&rMt3j)xUfc3lIhH*+6c7_9|W0~#%NSOb+!^FrcNl47uphS~AX$gOs3*W3oS(E>!S zxR*IZyAgAQzqOn$w;kzmVev|bR{M|q!|+w<4IQX&*g{zss$dj}T&VjaeTVM}jg{Hl z`0V)Qm&+*WjZXOm^#LE@mmb^R{mk7dp+Vb%uP!}sWIe1K3d0kdpnSZIR?jq9Jg=2^IOgPUg&CUB1lhdEs?{tZV3DV!*lfR2RuT>~|Yw4ti0{>Ds)o z4Q%9)ega+fof_cH!ym z=d~BGA`Y49+dWr;gvRH#koqh3zN$8+I&3j`S*Ht&cWg)ZVOtbh9J-zDLGS8dz^!@d zaHy}`{KV>VdkmT$^oDhwj@h(`CF>oCXGa#(anL(|$X`44hlP4XcTPMrzs3$(`qQsR zMa8I@-i%QqDGKjJPq9me;E;5X7?ADVku8i)qw8Nk>q{y4?eU7~23+w(M_Im4Ry{1H z+mzOWn-lo&4|EliRxSKh-TnkAHX8e#q~AVFvD4$dL+kN zt?^Zr?hm_?a^38qRGeLTJ*J!cX;pD+(Q+wciooG_YU!0)A5Rfg2L6)2sZJsT>YL|B zCAPyj7SvfjzZ#4`1PeEJ{LXiXo^e1qP+J=oC^ibqtRXBmKNO+*#0IcTQs*> zq{wd?T3#6XRMZdlaRg`)5ILojWXVkz!-XI> z|0o1pBcblS?)|V%`(eUbc=rILI{TT?_-?WfICik`4OoBVOMj+0nzy|G?P8NCzLtH? zyJn)M?x|k$=Iue+O_l1j4)+u%`pwv|N_y^XM#ZL?s#Jb*ZfA7YjATz;@6hLqsXd;m zp)r}JJWpbdb~FZa&4WWsbI(A^+LPVaxM!HQtNg)D7wSHf45LYxY2hKS?t6Y|qe)cV zs`ws!^y$#VBKXy84jZlZEsNfTy4skc!UOVNiIZCfN3pY*3(~NcV~_DMPar*K_IPv&2Xl?@!OgznC1T2?ugFj zT{-5J*v^^%}hyD4BqGFtQm_vZFwa!xwOT#x%Z4LwCTa?(+L%<;ZUy9B#w2#85W*z zgl<3O(ZZm&I*V(Jz@iam&z>P}{pc=Dm*s#%>N0g!1Y- zNvK5bqxmZp#^ZrxhI?mTW@GrrpDp(am;_(wRHF z2o9|uDeou6E!k+G%LYK5BU@>2AE(*tyoiTehqD|`vpm~L{^XS#vKrL)-uSp=Fb9_@ zhWmGoKb;cRcQrtnG|LyL<{A@f_P71LrF%_bkKztv=;`Bc79+v3qgE2KszizwNx|3Z zpQ^<}9>EG5ZeFWe+*b31Cs~xY*zCNf{n*(3oIZh2jB6x8&CH9DzID$VC;fIPl{&T0 z>S{PMq1`#nL$dHQ`gP`K&3c0qpOh>cyo?ETzMl|FKRznIY-$^M6kv~WTKvSQ-L~&$ zuochwF?Tj)`^9eDN9&m-4|}S-Ty|>}e0xa50AXM__7fB%h|oEB7UZA`G)92B-xFjk zDQ`*Ff5DRKu6@*f0j?>fdfkG3+31-9P^j97s@b{kgqB0NTAGV>to?8GpGo|D6Cl19p~5ssQYT6^YI+Z}ZGV-ZcJl ze_n%(+Bv>)J;chkdu)U(5!`xyhm_P+w5n4msP|*&hs17CqCKI2obbbAR{)Q{Ob8ofH6413 zTe7+RGVG6GvvZ6R4-l!#z3^;qxKR>T44@+u^x*14>a4H z>(E8{hBP*48qIYGPh7)P+*$HYASS#z?2ZpSh3a)$qz!7Toc4v#(^!0G$BHef0F^d( z^U1&Pn(!sHrhI@gB=Kb&N_*0(n8H(m?*DIcZK;h*mhMPZqVPL@`hM$|4Ki)*cQA2meSaPeksp{5mwckt@klMPL) zfX9ISPaB=u+>^WB?{I&?J600%)rB{$%;l?LC02i~`JSjXUoD2*A2Q)%KGOT>Pq!-4 z_w^F*Pz)&kyuPF=A1+i9)pD5?8GE<5WPpjOAgT5U{V2aIV=bZR!>lj64_ug(qq9taVOn8C6viqw%wq)tuW0H2Z zok>_PReI|ZI6-Lh1TkCSq`JW-oLJ)Sijh%|>0mm7UfIILdhi_OXEdtG0!%$NbGl*3 z=$W7QtD&*sBY#**N#ltiM>%XP4$JZiRiDpbc1kgW1@L2cKURp}cYAt>$}VVJMHCov4&Eun#zm z%@W)wwLNB4O(tMcK1=7|fih@hz%$$C4Oc(`(!9#|)X=RN>(UN4Vdg$8XOW@me+1~m zvE!+=uvE5QqL@Go#^J$bq)GrU9Iz|XLZ@iRCL3HUP3_z45i{G8}UkDsx9q`f7ImLoXO zYgSkntn0Qyl;KCH-naR&^ZAh!@BTH-@z&Cmrn^m=!zx1Q)r;+0df=@os_~1U8UT?I z+uSoI)aen)-b?W7wrmQQS@p>%}~K@G`X{?kjxP_YW%o>o-PIpcmra#yZbIY7y zY76sdm8C~Pv&pUny59`i$nN>Dha`^vY_gli_VpENGw%~5UCuA3<&@e-MwsKZCuWm) zxvI-EcEu83iM^)R(>m22LTOnZ+rZdj1b+<8mzQ*F-uo*hNl6mX`<0^ghILp`e*SBC zul(U>CyHwPjoNe$iimp@;g*HIweF9t&(D@zWt8jVlIv#VCeN00ImQdtc(EH zi$2x?OdOQvQuQ7`#^03s6ZHBxRMWAP$3t&BKmUT>2fGsL-%cm`fo6tV>V(TS_L&v_ z-hPpNJmpjOdV%ik4mEa|T`gD>RK8KBORsJhV&)MT?0PN{<%~2mfZ3I$YcN+k+tq;M z3qrC&66bi;+%Fwk)lhvcguF5u$t-hjwv6#}H^Axwk>hzNX8=Cb>$~qD$zPbSX=kwi z#3{1nPaEp^ZNH*ph({)8!+)WXEv((?q1TVp4`g4G_{?YnD=4qe04){qnJo>-TO8 zO0x(Pm8}G_6-F*71n%xJM@1xdi%qUB;45gT|wd4I=P8;yC=$)zFg;}ZS3e`Jrg#mc#K{2 zS#t2d22>{-swCPCqv+GpMeNvPdK2Haj5<(oLa>N=;OmB3QTIa(ia0Mcvs&tdC8OEh zL6d)}wOTp*S9#&cfX9s!0>?OkIn~KuCk!K=$4REYZ=s|uKy{nWLcdW!Fk1jj{fmIo zS%tF~PwtSi0;$HYh5MsDVd}Ma3Yl6x6zorHRwA#3y>0Z8zkDZX;r?ca0$sIfemeGw@@5QytK&wqUN_q)JoD-8&GL*7 z-UcwAVH1ox`(gIJg7E!Hc6-Xcl;*C9kZvPU8*B`|_KT5bzOG1@|7Kq%Nj3*O=wUaX zn-g++WVMy+s-J;GTg`%yN6p?4w?CptlF>qy)_odA6gJRR=?j2eWS{DO~c( zD3QtM4o004JqYi=wHE%@34y;Ts*_;EE3Gy929R5?FM`}dZ$+9;m8(fJ+ zAHtdfwlzNN(QiqSIX{6O!F(D@3tjI6dV^Q7iU#yYWNMreq|g=mruQf%&E2@ke1+ZC z`zx91RN#IZ8d*$nSvo)z!>zGE1#c{&Yf8PuWs(Ydd1P*NRP}pyhOY`Ssq;q2 z&&_DCw_w+D>9l+&6!jcVv}*Q9B9y%#7tJ!IHoz=TgqoeV^Zn^fGMl9tBjALuIJ3U+ zF*U(R!pp528G{ZM1@t%IBtd}Jd*RR|`exwIqmR#{JU{r3-nWJeFyS_Gq>!*XD~ut` zY52Zm-6ueY2mw)2$K3_gnH-NS+jfgeI5a!*U`&GbW{8u8`fO|q=@s!g$p82Eg7ELm9}&B9n5)pY|i zJxCXX(F9Osb-KV$htp?w^H&D{^q>|_-e$suP<~^axVQn>>RXz%Ar)}6$R`5@W6K7S z^{@QLb0=tFGfb6E6WyJYC%~5Kf_KvTw$d$KG!6kxs#L(P)N8)oj(TqVz1CvdeUC*d zJRLu@P5pnzYFmNbk}QG#X#XaQZuiWxP(*2}E)LF4y_+*@ZitXP4vgI;$>Fs^;Y*SP zYih0vTPv)ltd(<5$l6#aicpN29qg=!TfTncDaR1Ur!8cJu66$Qp*tVy@pYH}K3%_$ zKiAXi*nQ*`RM6={-%0Nd$V`w zufx94*cXqcr9=CiUawrZhWRq6dK#0sc56akkCKr-wRPbGTYjp*ztf69MqDauJ%se^>x(ELOrVI4 zy*%I~KvNBT3%Q7D<*5%Yf^ebe(vH}NRE~kpLy88;z<=@1Z+1or2# zexI#(Ai4H@gnT4TZ6#5u7ZI-D`=R_uNXgO2*4M6zV*+Ol^bvHhHP*FzgGFXp(CB#u z;x#|u+@pbQxe05L`h680(A!m&4_-)F(j~l4)gso6an|5pa}qNxz+(n~lO&?@;uEJa zZ-1(&BL{Z=aJO*@K<6D%N0^CS|7)#i__mUu@r-WKp|2>~z^;dOu^`rXa=ts}_{eP! zQh$}IL}F62yKC7HySm5Pv~_h93Q#a5LT(+vOpX#1*J*8;cIcWm`hKY*6um&7tDDuu zBsh}`3C*M(4%ZfFhv%oAROAD~_`V101Wz~jJdvFQ2o4`; zzQhR@#M$|s(H7*#&@-XVK+P|MiBm2YY6TQ^5N}&PD+VV_H%_qZgfBnvjwtvm*mWql zjQoUl!#L3FkrKhzb8E+`{}GUnz+yyIPKCHpcCMq#J<{r2jIrWqX4N+pPmJgsFq|6( zpKC3bE;gJ+aPf008WL%D=M=Swqo`yUL#ePsQ+nVXBPi9U=Gs+ZAGY!Yocz1tWlMpy z(tYn*NOYLUB(!*NtNGftPgJngisrA4)Lt#rHFU>stnV=Xc|^rv&4hJCS?HYwEXn;B znX9SQ?_yvV+zJze4eVc})awYvvq_F^!tRrt4xBjm=<~ZsXw3d~0?;D>IX(eG*p`ri zH((DzWp-Cv%`i!{KvioX8h^Ub;e^obLR6`qRxE`MJKEKOv?>Z;B7%G-K*c6r(ldOF zH^7L@gWE4nZDI-tfCP2|`QW$>gjZPno$gPeaAsCw9?=CyNMZ310dUM1a2eIIBZYW7 z-tDwnDfE!%_iCw7knaX9sU--yqTZb-vGAK_I6k&DwCuMgAzXoC+qQ!IRen%t7pL;s z!#f$y=QY0H)=PSWpOBn`mxf*orG#xdh4NkODj>P7U^+x1gQhn|lT<2&G|>J~pMk>3 z>8r1Ka^N-;Q0UuBw5%UVqSD*s3B=T4Wh?1Ucf@(4k}brzzU^d1kyhgZ&Tg7#`?rQa z{n>q5x!u62y5IZVrR)m!C*oqB;FZ}}$2_q4XETZ#m3t|(;~C|wTHiU0vhm}pW8F}N z(91C3ELifj+<^;;-~S!}6HU7$&=sGYgssDmocYcB0Lt8tm_)qk4Ti2~mW5sYlc8x> zkN$``dcIQnX~BFi^iNp#%>n3dEPE(x0&JaO&K~4ZXLY+Jh#dE-CDaNN>7OeYN32cv{x^o);^Cv;*$Ni}&d`NO@A+ovh2Gq6 z?j)fzK>_2MNw`K8=&Zy$Y^aDVT;kj?^Ss=L$*;+6;nF(Gn(MfBUYe1w`K=ML1NS~| z&P>I^k2e|8Yx`=TyG+>XErjePG)66}|Bx>=ZzxDkK`9;M>=_W($rqNlelVa>LGl{7 zSb1mde!w=coJ7SN}M ziT_1N`_y|4q&T4m|i^YQP%b;ZNvpXwXq0$*HX_34zA` z;-fZ9c22M#k9`sb3LK%P@>VPbYvz;N=QHBQT$YXR+?wIas9O)eR`;?mByQMz@$uo+ z%(@0y+q;+#Aa1Ao8LeKYCF*jpEEz$b|D1X*6fC5x1Isti_|J5jfRQ&^^LEK|e+UDy^!II4Imln#)A*(Tx@ljfluMBxnjcs9>h`rr8re;K8G`0@ivSGF-)DO>z6s|B zA(dE8etr^+qHrN6ES~dIm@x>QfoRU(S2|RE*7>ey-|>Zv6m3mo4HHtzz5#d|@P@2) zQ@^9tzR7N1+V9EUKIHq>$3odZ^EHa*roMoCBU$I6X@ar__=1~cc0)d(OQR=O3~Yp? z5(61pWLG!;{^Moj4o$2$og=|F`Unt^kl6;e;=9FACC@G`95A8kJvh~b9v`nhmN=_! z0HY)HTwVSESnP5ij?Z&-B^GadgH8l@MA$~iz+%tBzs zKYzf=sUEoWz0*7P%Rr7>L=}u6kOw|{TCm-3W3iM(1J`tfvG}*PNW1jYkQj)1t{_O{ z9IwzM#<>wI;QA7JcDOV1!F}P01#^zBB$Xd+PcM>0Q>BfOQT9$6uihIAj;^v_@l2~e zV}$<3@0d`t&ReLE`4lA^3e`0OWj*^U9;^&qy*Kh#6TQ7_+D~JXTUZ_SrK%6UrmEN4 zJ*r(iB5Pdy*zP=!Q4Aj7Wv%*7xb{3DS;(tihY$ZGlyXl&cO!q`w=VEM7*npJjs!f zF{WRBvs;)c0P)`yT2#NyXpW~sqfBU`M>@(I07s!zQTn;anb)4|$c1TE7RmjMc~Q~p z1>1dhqGrAt-y3>8o(fU4eQdj{uzk2q@0$85We`VCv9*RG$PU_7x(`O?pf z>xPxg7n4hfMMwu)sy&1{KMwzKZ2kJ8*9WY{>(AiIk9Fm}Si&nEjh;#Zw+^_+jgYR> z^?QwQe?YS*b&oG0Ai`xyE}@sP%DOlX|9Nci`l8fy+byLTc>j-U{60wc&&~Ws%@`Rt zSDrKS)uRi7-t^h5JHaVbMW^WB*@UwL>hhhmeHY-%JWd-;6-OIxes`dI7Z<+|(D_f@ z{_8K)sArb1bEs(?cZ1ug39^=dZ<9d-H+$svc@hL%1A&o+)D+)GuP^S$`P#kyO!YxU z{|+XbqT+wQAhVWw3dBzDwI)bM#4clQI58PF0Og%o3f!Qco|=tlI)qR$0O`5Y|mlX zDCCU&?yP~Q*b~ANVl6Ls-^)6RjkUbi?Fkh2^U@v}+P=J7M!4y0=xj)2x@%5$CbY0Xs7y{K*vaFXT< zAFx}s0UY~;-SJbI8N`S_aH?|;RXEkS<$+o9$gct&K>uRy&w2d8uj_(JIyudrJ z3I&WxY)g={(b?QL-kC?q%qyBqLVXowf)pbNX*s%&uNTIMxLwA|@hlz{=r}|0PN5Wz zwYh~S+JzO=!@1R&k*j%LJ`VbZ{A5vL-<-3S%&O1woafn1%;5yrat=5rf?hm07|peu zJ)5hH>r4)G{-x?Iz7W~LWwG1Om>R9(w*>Db!W^*#=O`11kDM^fB!B2oA=W;GH8@0I zMApKN+0KsHFV2LNw5i(jN>5bo?BV=L>;}fudypbUci2(MCCfrSBI>&1L$0EXk1=Jo zBXUOjXm`77p3i`NlxF=#3Vf4g1lc7YPtFm_!v)D9F45jCxw4&@a4t~)gE)WOOs2=4 zyGE4j&WS&vj*3SZ+$QA)oXa%0ER%b&Hig%fNh#|oN6-Z3g0t+`@GCtRbD ze-Ji0Nga{>2TKMPjU$(iR*kiC*yY3j4pyZgj0 zTGL0kEE9CGcEas#2qR=H1odt+qym3-)MLfz$AzFkn%qRVSl_Q7?B%moBfuYcjb0*x zIlI6sgr59@bv>XR^Mgeli^PnS+h>jgglTF6YhkD+)r3M-opB@=bM}sFa6wSAa%s)N zs>WtS%fu@6o=Ty>%Y#2-%JA!+f^YPJ3#uP>tUJEqBMmRDQTBD^^AG|U8Tt7=idSAm z?;b@;%(pFMsS?hy$z4Ix$!e{KZ--ZRacrsxA84RXmU~DsWD}hnh6;Ke%&D7mwETgp zwshG`Gy}Ml;KjU=*~;M^7>sar>D2LJYMJZ(^lbyo@}4|=O#0^ z5*t{N!Iz+jQQjzYrKJv9TC92~YU-1Wn#%=lut%`T_kUzm*7v-w7`F0g*s@<^$9(j0%hkXqOw$e zxpuBkE}6=rcgAGNMVa~|exn+$#`z%y%AB^dC1oOGiWQn6Q}<}L4)c}~2FR>)tq3e!zN z`7W4ub4Uyy1UU4>W_XL`#ym{4fi#z`_}^F|aW%bdEd12Q;a0a?B`6@~M3o>ROy-); zjqdo1v(+)-!7pc-6j;}c`>X4X$Seo=O8Pjji^yG^GI)w~Zsf_5uh<#CT0O zHY2quQbDmEu{Anr&0)^N`P}CT;GXtTG!Kl%_XwO&F`MU`I4`cUiA>N0oDD&Y8@usi zT^2NRamsuIG3<$vAZ*pH(4z32eylq|xj&N&AJX>}gdS|rXC)U66ELIu#ujkuW~28y zjy^uJE7C%QmbVsW(cdZ$8%xrY+ZT*SpbIukz6~b=YQQI|o^UKzE2ebQ1-M`b-ln`! z#C{ed$77wG9iZQi$&42P{!))D535aRewzUml&ukR7DUjtpt{d*)34$<|8vS#hGreOL-N`vZ-2etnC-_HH%(yV*Z{N@zRdfx37^CknNMdZa(6f(79wm zlh|B%n#F$0WHI<;Igj(wvWvdBiu&<#UOaZpcmca^>L)g!RrnQEU$uE7Vg3)+V^btS zag$+c^YB%Rl#pMle7mkN=74CKET89$qy+KaS>RrNU&S}mc|G}l6yM>z$QV?&wKL*% z7SwtQ)k^2|$p%JXj}J1GFQHzC2My;%VAb)*($FcX!|OMaFy7ggYwM)$S1AnjvUm3L zb9kgdD8+G#BDgJm@6fB!CMt`bWZ5f57ibhNuX}iyso&ugqw{_^Y@Gk9urvnj=Ni@4 zMI3d0wvJm>T-Nz89EQYy;LIe#uV1_bBw8Y#;xWg3CdBZ}MD%Y59LdtYbPKFy!NysgUQ9b;U zO-Pb{?$rylpv~_V^;FCVcl`vd1&{EVQt|7)!fq7mbCASMqzjE`)vwcNsUZ){Rv0Oa z>K@Eyda3(=0W62VJE|!~Nr{UshXeZd^*|%yz7sUf@e7v7gR1LSn3qv;^CQw`;dvGi z^{SwMM8_)K1?G$qEA>vQ`;B%Etv&LmwptaONFPoXPMjg=Ab;)b#nF!Ff?BywYoQ71 zb~qCF(|H5NGn^_ZCAiMI6He%8d&v#sL1)&)8ST8PI$sXe9~_^!z4!&tH+Wkt17;FB zdg&WJ+U+DYRbFCDtlNP#LW$V;JmWskbZhw*(l6zbWp4hG$-)x)1;ha@Q?BSnmogIf z%zvYgaj^Ae;MW*xFbgV$6biP;zL<1Oxu;!yc7>5Nyqv{t@$2VwB-^U^G)nLJ%oj!y zyU2S%T2Rutq%$Z2XlD1F^E}%2GxMSY&E=$GOTs%pVQKVEGh?k2!&@aZkfV&01(oZ-35W#b=$yVZ~C!DZFSFS80S@thjh z$W`FM0drPMRX)WY{+cqIJXpu2wcH2{lB5@Wnlc+cSf`jS?XLWqTn&&Hy!{E8_ve+i zav8B9REdG9bA^w^oeaNI{;D^=nG2Wi8n4c4zOX#F3Yvq3GTk_cmG-I8>Ls5aw$649 z7V>5qmSY-O%?yy<;qws4=|=47KfmMQ6Q@KsE3wWFR=YX)TCL=x&7JwZ(7yan?(H#K z`|w7#iub6-@&IwB0hfzGjA-=$DQ$jabB(Uij)yfsmg-Cbwi|e%BTYyT%;18Kqz4&G zy&q}X&jk!Hj2p;<+fN@fFD~&3!0}@K%gsI*#AJMTL5pALsOF>5#%yc3Qo1=Z=T=%~ z`U|9$XkVv3Bhs_dF~qPsqjCaSZ+;;gJ=KTPhHY#9c%JEO_VSAb#BaDjd=9y?E7AAM zHT>n5HiWlBq9HeNUaET7-m(~l4coP@T&J~1AIX^V*Gb{3>DP?VP@{KdMrbW~Uee2Y;i}LTFxw(^TN$g4P5qAnW&gY6F{xh>WG;(m_$@ zH|AB&KEC8__vSrTbZWPdf0l>2hn>$L!E$_d-fC&NUX9J~sL`x=joL^vTU1ZNJ0zZ| z83On1EC2YiI9N~3&|_-|B>H+HkRr_1pXy2}_kI><)YO$CaztV+%gAvksVVnKbAG@_ zvlk%Wu1A)#;C?LUtB|8u?5TN!(rSI`zvk>VASv^1mGA%~Q&(DZ5n=)KYz{|rq&}OY zlj4tbt#$v$#`EtPe*FI^@jqTa+ea#uy7#mixRi1}j?tOU;Go4U^FMAd$N%%s|6}w2 ze8d0I;D1}H{>RvVTdW5E$L`n<3?F!z3k_?IVgJXe|822kgsnK$cpk`3xe946-5Inx ziH+QPMt+Lk-WS9ND=3fQ9%3qzK1nm`O11!$l~=#KUw!;5p47Rv9-eN0{|71~xq$az z?^vm4=;8S9dGCbbj3(ORY)ZR{a)y0F2PASl@10_Pl+b`X5usL7<{;3hInk{=V zxl}OJvF#`+EX`jgHC=Iq#E$w)!CV*yU+r5vL2_h#Q0E?A%~Y5YkAq(uUJbfGB_6qY zb#T43dT2Y+S5kfG%l%73h#y3r(i$CJX!2+aV$v-4S<*&suIj*p@%+QEgf@G2%&;2pHT6OQAcmzcre5$ zaH+7?xWJvd`GO{o=FJc~7{eJiO8@x)8a(D==r;B(3Z#BcSF^jebcLn5SPbyW(w|g4 z7R(epyU~A$)|RW;b?VzFe0ASnA2{s(VW+UY0d3q^&E^_-{qQM{zlx6p^$%0YRh_@2 ztyqqtzQL(VT-(jwiNDOPe*Ww6I?BGV zZ#yu!<&N$$2~P|VKxwGL2firlCDb+FFp4;SAqev5SL&a){K;E5GF~@tIi9zUu8~YA zOkO-$3>^+?;6>U;KZ!Y3X9P`GRhWdA-oJoiJw94Zob#>-jtO}99$1;_@KH<#k#UJjQJ&|6G^bUDhhQnc>3jJh;U=au z;`peccZzpYlc!ZtvG(1oI!zZ`XJ_Ufo(gP4*uw~4ht zRa=pgcfga1fF>uGtJ*71x%ejC10Fsb~w zfJ$$Ph!h1u1nCf^NC)W{<$KL=vC zJ)P>8fR!!GDBt_g%#A65#wC>DcgpmKvhs7EwwSq@%hp`gu9DI!>cLKNO<_m#kPLov z0(+Fa#x(1)USofcKNfS*(UJnDHp7lnwk3;TtuH;k9R$~u)gVxJNmnaGn(JmO_8`mF z!H?TU*aaaU$4G)ChIREc`NM&0Jx$ONKH`tviw{upn*U&aHEL%vkQ21YapLeN+t797 z|4&5EwIvJNp2Ttrv?y-(ksj4f=6wB4@5xf=qv~r&Uxi|YXe{)`>{U5Mu7AvK*E)8U z%e-!hhsI=&NrUKx+W8Ja7ACx>q%F%(FimR;tz{gE-qLr)?ta`k!+M7u!caJ(bU=kp+LxgHj&&yrO zd4fNg!{6^7Qr+!(3a$Ow|0&v}kyyUk-1ZDo#@?7$v5obMM5eT@=t=U!-~WIxQ)CiNA3_bX$9FMF7&ICR;Cj40l%lP#Dvr%W_}wau?< zr=8i}*aL+%{zcGfA5#ixN#BcSUBCKdGEqh-i4nI^rzYO4gmDjNpmaRF#`ckJL2D*k ze%H1ZZ_}w_DE%#7CIxJD|##o+y)D3F-ZJS{+A9>X?i!ywWe1IB6ejfBnAwbo};_xQ@G0~q03KQS&5 z^Y@n7ewh)s3Fl_o$P_PGg{p4)iMrM?dY(esOZ?;6D^PJECFvh{7(d#ogT5>m+`-090VMW;!|D3jdEv zBKJXZ6l@!_=DC0@m|yKiTcL_W#$UvaZM_iyR9U4q=$@$*v*cx=NjJZ5f-OIq&7OX_ zY#1RdEE%TX$n4&4Ch%j4=ih-Y1!eL3`ZQKx`b}~+EcaHjaj@F(@9tLd{PdMvjH^!8 zPN~FuKsMKGyf9Lm_;ij;rWFW4KUb)FSUYwx1J4|%CK@d0G3t(ZQLN?Ty?OtTP_q`)x~z|9@_yQIT1yRE zJzecKtW9=EP8wuu*p^Ntspk}s;F9S+6k4ZTRyVS1&lU0oikq;EdI-#$iKX2m;tiJ3 z!W8cor{i`ebNZy>{^IWao6PI;)xMUQEc)L}_?U`5MPuIRRx4~+HE@D+_*rXX3j|S9 zX-!T}r@=_zVzyP5*U3Wub$umAwBo-4>q3r-*M55GHCP#gQ`ax&2b*R>Lo6-QnvgS0 z`U6%e^P*dEO4h>QYOsHsU{f-3-~ltCYEo344=ZP+Keh~?=PcZzZI&=vIWm;~1IuZw1N=KD=(jm9H{}KPen{ zfnCZakV|FI3l@}H+2mGz8@;RrY1~GTE8e}%1iw5!eXO}~;O9~+&e98O3RL7&E9vO3 z(E}l6)XyAG(DDKZ7#b6sLF-R}XDBB`&u#hv1-1E;S)Z;t%0&osyifP3Vv@5(cL0A@ zEbqa#hWAzvP32;I4Src)E%36I{wjYJ-h2dNn7b)?sqf z6H#0r!V-cRTGrqT{e;iOpZF3Hwc|w1buon2d6^&z*{h~0P^a|AJ9_j2nv1u)7W*kln`Un{^Ggciwt3A8*u+4g zQ5r{f3}Ce>;VpRb3m+jD%#1~nHCn#0ro2`gg)#09|y zikH?cKbC=3ih<>>=t(e&310J$Ga2sRqH}LC_6Oj20eglVt)*$hVe90@vL zhG}*WSs}OvJ+@$NL;O(1FsND_2GlEHEbrl)rK`9@q@lJM!fl*bmW958ayzg0tFBLM znSJaN`g(fIJfHO*w87uw-L@eSR3=n7vkRPAWudurPQyZHa^cPjFMN>H4OqO3!WOXY zX(M@PZk0V2?)z)Q$@6C7t)~QfeJZi2(Q^vy%n=}r+#OB1uPy=fP=M8@V zm`A^}U*~MKwn)gB+hA`h5Ly?+VV7Cs2WI3F$xfFPoTh~)S~vA=$abwQS=2Q6jA}X< zFF*$eX0)j^&weus?tWCQ@YmT*y+GmFA_PQl&9oE$4Xnqwe~PmF-0$UX z*S#I%;e>~(ZtFqLVKgy1%_smkFNu6C9+nyi=jCgzkmWxSGbUv9kzfuzP&7+$UQiSQ z5g^-^FGVdpuSr-pS}UI?%0&{K<2FY4i;V%y#v3asV339w`6V!wd~g){vj?_&X@s3Y zG$GDL>L@zpjOfaRvSoRo07p2uMnFyBRAe|tjx#rGT0_j~dJngL$M}o{vtsclHko#* zF6E(4+!_aiFSUs>Kf*DpqTmv8Fv43lG6nc`XF>}&*IZVE zD!2&IUI4<*lHq9BgF;N7S6jhB!0fr&wjgb`cJl&Hzbu-k)>xtP?i4o#7==KQQDyJfn`M~- zdFvQdN81(x+!o1P3%#hh*qSAL|HpjEvQ|wv!Wud*(og<1RvNN4mEcLxUa@JhWUZ!s za4ol6@_JglTkwwU+Vm~iy#fJ7I|PGR(mwUm4%@XDZyKG}l5~R^yG#frA&+IZAt~h1lMbw+w+fUIm9^-idIXt?m zpzZr7^kgIQ(+UN#WKzGEivL~){rf?*;%tp< z=Q-VZ>vXjVK4WJ}u3dZ5f~#y+=t3F`QeU7+zJ|QWEd5u%I-U*|{JK~gTtu}dfLbM< zFz|NKnf{PaSpP&$+wMPjg-2vTeGtdfgRVQh4)G}t%Af%5_y$`xJAP#GeiSesb4GQM zi55Z7J=?RxZAuKuPbQAWOAI$ododXS2;$KgR7&{!4UGs@sEG+r_Cy!1c}%etEQ(NR zO*8}hMd~HHuQBYfK=8l?o>xO)X;{g^O7JCy^hqtqCgV{HXG7;7 zqQ?RYhy>lF_bWyyld@Pm>v9uR;Tue4SEa8OIN3~xL*`M?yGJ2>%_8(tV5ZAuhk3he zt&XBerz4d5QD6m1deAoxiYMi0nf)i`jM+9soW935re|3e6+&iQ(35C5y!;RwKOSpE zODGVd_b&C22Pmx~#pqZsvX=hlS1z{kYE!=K>~ymnxIo?`b`~`^J>fJteJZFHpMl@7 zY$~Arg?-_f2CXf4?S)iOb@C9Odj2}@z*$V>IN2pXohaXLIl^5)PH*MnA_31zf(6>$ zW+IsL3V--zyB)I0bj1MF7fi?=d#M_6>;`~S3&WPcQ;G>nWv}_DLm~#TRwYv zHHWPXZ_HC2ULayKEF{WtQ@zUES{{G1B; zIeNis@83@|h}4W8Xa36CU>Xm& zZ*!4<(-x|WoiuuM9|{y7;4`KgE;{mWIOv|6js*s0Pe8uvC^YTg>vsBFMifB%>isR& zyrX78PlXLOV4V4C6G9eZv-O`E(4oJdY$PDuffWn7(SP@SWAlUaG#$S)zsEo$F3w3fAYE}LGiX+4kVTzpv}R#OS{?T+z?5%3@SH?z2j(8#_~9>;t=@?&?K`)KY0 zXdcv>?1cf^?h%aI&e^ZQqm>;6cH#IJP^)Sd1P-w(wjXMboFY+cGS}^^|Zl0Yo>9>b$+s= zjmMes6HUccq1)0W%oy(r`~bLhEFJJUTCbFpdKSAvHNocYk*%FiEmh&qJJp8~Iq~-v zI5D{~I3`ps6vX?wvkp=8RcYn4D$-&#R43VAyX&HPsz|vN=HWqxeJUMlc%7x8=k*xd zi0LNFz|!c?Y4JrW0VJmdJZXv4Pyh#HY+;d|F_tTW9D{Nar%vdGUv6LwT|xHBr9G)d8-J690vkL9U^vK~iB2y(rmvxxN5 z%p+B1^neZX`n3EG0fq>Zqo8kYgl;v*DgA|MQqUPwOy|j3<7XogYq8$;;rt*eLFhL6 zq7wFVvHoCn?QGe!vn)ctLl9WwT6n37)Sw5F>J z3nnROCl=mhBfJ7XNUHuMh*3ojJiD4OE#=HSgllaN4|+Z?<&26a)jyvFKy!ZfO+iW8_Vyiiy6G&_Wh0NzTGcVyF zec_;x{J>8gg0n2pM+YV5_W!le!j_VG26;78L*qcT*{$>kZ_S@s|BCI~S9Um0wuukX9l57|!bFUO>R>0Cm_x4gyz`-9Fd;?|aMKdiaOo}Ae@ z5c!L&+xt1o10lY7OyuRl!Dn$|Pl68p)Qbo>)c>xc9GX&9=h(zJjJ`Ej?CE2Jkxtu4 z)3}d1yZKWR#!+-Hye|GZWe-y0sOBz>z92oc?9Re)Phm6xPdD5!gxxFw7~>Lq@D!J^ z?_Jx!o1fgi@Dp`AuPjAUAD>2N_t;HMWS&U*ec&T8-KH#Yo(t zQ1ty)8D6bb^OjDx?YeSd)K62p3Wwc%>e>87{8v=ffW?!tg7+H%gUvQOFtPsG*Hqm) zyWK33Bt(d_Zr<$}mSapPa*-ND{&L#!cMp+t*VQ)C-5l4PdPbAk_V#;68NV}9;p7Q) z_DK5zx^M>FH3Q$Z_yhK^v!}G7Ds@>>JQim6zSFD0NLhufW_zhCBvmQGqV7*3^VsS3 ze<%Cy3L>U1e*r0YE9IUUxZ&#oq)@(6ieKk@45~tRZfVRf=@ZR0!&jA?u;W(E`NF^DM&xlGZB(EA29fqZ!+`DR6tVFRV#^1 zitl#XD-KCUg9(~xCxwR+_KFZPex<{?mgYRrkz&*qsuYm+4G^m29(ciR!Tv{UNt$GA zOGcfYlqD^nc8}3`y4{U)d53Vh4Av>UVXOEKYU7EN=)O)U?M@V~L@Sapa>C zGg8xwDMrmhs;5t`=b zkJ?1;Gu^Yp7S>Bqu3Pp2(StuJ(dd~AY}hqF_frT=)GH(rMT;^}MuwW-yvtUQQ412R zU+K|tt!SlOb$61HN>v3Nrye4-+b*W$N^*v+Quw8Hw0;&=XiK4Ab)@}EuK&G@L=-7>l2>~c9OKUgE2DR77_s0iDtRJuYWeXV)C?v&q^-RG0qy6FEKymHHx zxD3WS_!oy+Y{FxujT_M3=-P&eM%mP)*;J}_-F>LZ`pT^=T^ZUJ8In;`{N%fGdz1P* z_-D>N=t-$AAYldN%LG*oU8$upJu0eR@yOd?Kr`THQkN(V0+nL4d{AdKP*~QlKK# zfdgaVB?4vRwa8ZvI^_~Z>>0(~@OM4>X(*!az@dTYJdNz{);tz>v04}7*>Yu8*8~v` z+$%l`-2v$qyhr|@dX|ZcDN0vk^LR>aQ&*_l&?HeQ5NvRF_lVRHJqxc`g(VAj*&rO5 zkVH9R1df~QsdZ?RKzH`*q~*uzOTHcUdCii+wjT*{7kr)e8i=l#MnTMRUvZw=`7_ef zShWl<-MksY*aGMLKjX?#?|0!MH!bpJP)M;*mX6J*waeo5j*CM6OoC`)gT3|4Nx&4* zNhO+HQO|vGq3J}npzUIR<5;zAMVziu2P!43+?#1Th_Wpk$T!x_pxt(prK;4=MSMTw zB~>XK@Rqd33myl;6;9vd*(If!Z)DgydC$k-9TIsT9|yH%RK2`67S``|x-b^e7xA&z z(>KFs8~&1^Xb_|ERIc8tkfNQkM|s^vzuBeSO&%;d&k);%K8?s60NlJVL(!dbVf+h) zv}pJw=PwfDj50MZKd=LD2*D>a{t}iZix4-{3npQ^1`C#j_-8k-;lXd%x6y{KavGO5 zpDgNdo{jpF!b4m>ms)GDtS{>5zay7+(@5l;d*VNk=v*5RIxk0?=Nsl|;(H^5t5YuQ zcLShS_>xJe<8j$lz+1K>NL%Ex^90gBg0NNq7566p*I7R7o3}U0bUC` zoAKa^U6qS7QN&{E$wWj7>8WD5)MUg5q|BNReA_J~Te*7#_TK3o`I$@k01VV;Z+pM) z=2e6DVcVqkr4Qxv5mgoipQ;N+pidOp`mcB^;OQ;DhW!4N6u;$an86^6@aRB8g;3g$*(^#PkP zsp>oM00}z(+D%d1`|0|~UBFfyKmKj#JG`3Wg!`MvsR`;=ui7JM=PYyRXWr|$$Yu3L z^6J;v2P~ihgq+RL)a&u-`Y}Xu@XTw-yxJUU@HSwqY#eZDILH1c^wQ*`HISPU+G5;V zRTgxWfwfJ=pH!?v;7TeiCAN9KkFRa|AvbaHq~Ys|F0iwoJ`&}=Z;h@tsY`4+zl>nW zi_9maJ}5PSl^H}Qt1De#)K~=EBBOuTx^1?f?Y1xr^(9T-w8eNyL!(rAF6P(x~XtW4AkVgh8}Vqo29 z?58Kgkhp<{R4f5TX~<=PY3(m`2nQR1rK+{)Bd4V{{fxM7gy?%i796aO{IX*AA<@(? zd0~RcjoZng++S{l#!J89RBhOof!&X@DsrYAeV~`$zZt+vVM43$=2U#}a6DtqrBMn@rM>@7-)SIK@0@ zVbzwk|KxK}{<989L)uIR_p%7XO+QRhu(TOI_oPV#b0*KznxyK2efAU&)J)$03wbgr z=h$V8WS)Dei!wFZQ6Lu7(-oJbs7W-g^*ji{nin7>RNPvlmLM!Bk9Nf7A`e~yEbeWS;sY0MiI=8KR zj<{OvWv&>KTpS0vB>!l88JsPK2_^pTZuZ&{q#Ftop>xDa$^JizqSBo%oXP zJ8YrujgVX=JMQ9sqfhhewvq9$BV4Dd^r)Kvucxt?uHDkgzuH~zI65M-wpI&h7%eTwZ_|Ao!HuagV77>cf`z+Rs6Iwz zFO%<-DUrD^bTpqj=Y1Y;31pq5_w-O>1K#t<_*)Uy>{&)gv_8g=Cv26j7gvGKouYzo z1|lTY0MEVvq7S(UgpbXL2D)M4$}<6C7zuAVx&iw#V=bu&-%Bn;A;^^_oR}&g`!Xb1 zFJm^#f@n1}eDXs_N`#65F#1@Nfd0)HHNduzIa^Q6Kevd@T)rZCpR{gdn3DP_7JW0P zW<#V3Ur6d|`I>fXUMVlEZNytR?QJKQuS{N>-Hj!%zvW+m{8Zk;??R--a3etp7$cb77k!?$ zWf`aA$2>-6Wt<;~TY^~i)P=!5+M69&)rTH- zS2?DL8VPp{9j2oW@g8|O|3;GTb+~ljik=UuskkbJTho|slYg@pqJ{qx_An+hc6D2$ z%nR30$$(WWh(nd(tVx5Ax@2~`1g5~pvf(XaWSQuwtju@+f z?Y(QfgFWtEtA|+d=2|(os(wB?gV2yQ)7UZNKT}5_3hl9eM_zgI}+nSp&$oTVR#SsBGy!d>gXMDk8sIU3H0n zl=S=AQq8~@PN$kKCjL0q7gS}N$_dk*7Y*oUS4&bxH);Vvwj`7ck#wle{q#ojFjBiA zqyJ!OTI6n&me*^uY{JTk#)zi$<(W0ER!_xNO{7Fp#LUw=?m5Q3t5ltaz`G)htO;Xk z#-a}KR*2?{YZI{J~-Fj3D{tnt59hd z_}6=NKSqhrTrTG;dOH~I+>Oq+S0YOwv?43B@v7OM)Y~s(EF+68Z(=O|aw^M?oK6O| zj}CX)2ijJ7ihzXD`@e-I6SP!>heKZ=>TgEe%z+bVFx%71s+xZPZDl;$Q-Yhq%hYd> z2yb}6$u(*Kp}^hW$u?fcq$=$XiN$ml$bb;naowtQbC!Ws&(-W z*Xz?C-}>hwAWh?wUg>#WEqypasYzfb&r*p|&QE``{!ILd-99u7{LJv2cxz|iD%^OwY(H5@PRgYO-IiFT(2hK5 zMrW3q21=jn$Gzcg`_D?0cJa1Oxojl7nfks8=bxK_C6x6D7p`glwM#0!Bv1#}rD4qM zX5Y{_&5?~QK5w5KnQ<@J>>{&xo!%-8b(+6ivZizmaT?HIw6}MjH4e< zC>%2HoUbpu{E_s9h!7V!3x`&wjnGmxjIpZMhRNcqLBM{yeQcQ>=jv_)+`xZAE+#mw zRh{+7VcLMYNFMQibAZ3n%Hy=Sic)cr&&axMzYd;5+;yC%J1$PD{c>%P;!?y7lYC*{ zFxcF)0axX2+OzSP(*4BJUYJm67H8s6kC5j#Q0v($VOk`@{S?UZ(9%YjUS3hvyF8rB z^@Z7~cr9CnuIaVo%>BgWi&}dWPl(-vZ_Bd}5F6jvW5@FBy{bgQw7pyJC%~Glxp#ia zXs=-`*6{HWmZ8aDbIk~y&OMJnPvE}GjnU~TwSv^-*jrF>v-*O)K%Cpie(XKYBcvF%D!*2A`tCXJs}l&TL-u}@e6r~tv-yq0}|#bKbXj8SGHhsv>QZ+svfZq6$Ra9`x5jQ zD&AX97P@HuUU(f5aHo0l32-Jkq_zVo6Rc6#=9IqKrS7lu`RkB8GnNkO4FcIbdj*kiR%C;iJvEd;ixhG7P`_ekJ zj3F!Cf3?N9yx=h94{uo3aS=ZZxXSq(>fYErd;~D9PjW}vK5rJQ6MJm2sF&BVnSi^1 zKeROaB3535>Lh1Ecm|Ok!lwnRVUqoqX2X3e6_T>f32}&zERhIk@r<0PuKr9`Rm-(ZW(SH z#Q}pZ=$p+A{pFC_Iw<*v^B$*V#scu?oplg`8#!#WDoT8FBt4|IPKZMhXBPRiz(ZH!xnM47x&8=OCtEXEbulPi44(=}8d%JoMg#{g zZC+g(YROO0#!X8$KVP)n4T=}o?vAyQO`XzbklmXVOQdW+zr5WQ=7YJQPX=pUnx&SD z{3y6E4;SCy5}ZJb_yM01XT|_93$>A5b=qBR=U?%Q!-Huh(Wj4? zlxeI+uSHIZMQbAg7ZhYkck~#|6mOvxVz!ti?YdnyZAhN#p>4PBRJFCzWz7qDxOG1- zVWV<&QR?LT2>YWJ3JN60M%caQ96;yXDG4gsNtnMEhu6df|R6LP@z!j$&*sO z(EW8$KfTYEQ(x6mkO%vG4r5lvkkYcuYq2WiBs)-QRdV0ZQhl_D9|L}HVrS4pcR0jp z6Dr?HJ33G=f7X%0{n=-MHO$>mmGknSUrLVpY{!pk%Aoa>a&%5G`}#H;@a6R>%uB8X z&T-K4Bm@)Pw6QqEb$4-Ld=Mn>_${shf*iX0yT?(A1(S%1C`WWtrAS!USW~?<14Qg} zq0|C4lM!@ZiBShJZ<(3+u*n0C84+D$?5wx9*>sA^u@i)V){PvA4FAL)js!)qJ}G#^ zh_#o@S7*xFf5J*6`+E|$ea4ahsbanzs9M|1@=BWg1yq?h%OYltdR6Q+TCi^U`1yBd$wul+Px&#&)(7xPKEE>B4VxjmdxkN+7@J zQl5i|+8YA@(RvEj*=0$~K|*_F?YH9*9(HL{ji%Q_egQ-M z2WUra{ha#70KQ`Uz0)bZ8SDC7TBiMQeKu+A=yb^&|Hp>)CFlFIJrk?bH11A^9364< zGQ*x+Tl-sZS_2zJ{=we>{{#iq(!2+i`2lspatS<<0-O)yfiv1_9iGX)+}wM~TcWXc z#z& z7|q;nF`YfGGFso0GTJ2e+VbhE?N6W2#eTnZ7(RCLH8%Bt6|zR`E-C9`B88E(L(b&S zE+Z7IyjzkM@i~{157(SDdaWpC^tv(W!kx4ohf9!2Q}}F=W%ywsw6??aCQ9mtew1=bOP!b@)pIKTavi@`jpj}!_`}NlFzsY6}9vL6?R~j zJ3%EIc$=p(dDku!A(D3`e_nvvuJ0iZH{!=5yYey%oQl0n!N!k_QXm(2&5z`WH_@`& z6^VN0o$w1l2~n}n%}c}&gORK$4A!{|h}FFt>l&7r7>)C$khwP(LznDXK`iZjn4|rg z{Rv`Y)rHMI?K>b%i=rlQ%dWq)O81~4L8<}UfKO^v4gP&?;oqS~!5^i{d(f@7@aARW zi=@TSD}vg}LWSgy@(M{Gd*rSHgrrgHS0wPO*WLXx&SE7+zgKH2OXz)URr%BxVV3UM zE&eK@=0IPeJ?tJ-h-%XQe(HUuSLL(5&}sC=0sEP(SE|#fnuAEUbnREd_Mbh(bv@Fh zmbYJc=AkO3R&WNG@gK26XZxO38Wx85oX&K40V){3N#Y)p;7Ecz75{dFczhOp7cbfffhWcI$2XZKaB_FY3!-zuQZ0aY`8oZC>k1#d{U?G!eU zdkIuE#r&gs>>bE4UMl3P0rYX6kl!V7XfORuVsrh4D?GtXgi*ifUNE6 z{^o}n9rDn$KSvJ`kB^`-4dg1V=fJvM!guf&cqp6N-@pTqsr2B>o3qzG?q}(|ZfU)+ zKjeGdV&i!UtsiJ%nN!H#^VEFsdm+ZHUEy@C3>3Up!a3{jT|Go%5PIR5HvZo7m9TH1 zuPX6v=4{a>z&{X~9r`0!C;gbIMA#$1P$kMVhC)AIBy70Xdcj+;Qu@xM)_RZvkvUhe zuUVKesC5Fl$o8L_uaxMtg6O{;D8jqoVhF>)VY_>fZ7`7fGl!ahLz(JG)c-~s_Pa|M z|LKtsaz%O}M+x!#5Al;x)X)%UKW*p(TT$Yf0bE9<-^=-Lx(Ta@mmMEZIfYEL#;pfY ze{C5xg%pXk5X}J@Pmt*dwg%%{rO?wLBeuqr;gukS2kF5pisSEF*)Lf6FQ^I+p_0SR z?cWY0lV5Jc!?d}OVLOGyhW*)(JAnT{3dcpACJ#dtMtQ<3RhU{W`)>Qpyh=wr3AQWi2Bk$OWk)*2!=h=62~%4Nnpjrx_g`to&l8!Z!5%t z?N4Tz5w8yyxco4S9zSM*u}RD5xi~2216w(yx%BUD%sI}lf9$c*Z?XwudUnkZtIeI( z{LH^WkNid&vFkXFe-s+bYwYSx1%=m~-roRdlj>>|>CkVnnsz!ID^?BrDc2yvjKgj; zdfQsbVOv4@&<2a!6~sNb9yH}ZSJQc|L$NPVcJ9FSjB{Kk_DGB0OPDZMzBl2LyS~}! zU{#4D{{h=?eo6Fu(A{FWcYhD@GK`S7Fu1jB_d@GnqV>mA%D*sCuG#x4XdhS9$>vR% zrzz2>ZMjb^FxJ#ADeQ4CHe+|+6zK`l@_Ts0KE}C?J(aisb-Gn9c7Cd(GO{;B2K8hA z^7`#Yonhq@ot{^xBwm1%P3@XYAJ%*QH=`Oq>iG+M@Y#Izh^ z+34W5;tTkPXqK?`553}T6|)m`bdZ%c(cMcHRd$knO;VxZ$A7^k$9pn%!ngenITZ=A zjg+of3Xj&Eb2$T*8AZBV32n$!njE(yWiZxMxDnSw3@{(4qA3SFc^vDe4gR>w7T>KU ztwl$Ue{dA|v*aKC!EKd|43ax6Rb@Blo}m3PV70VJ@B96SwN6>7u&~GBFki$!-1TC7 ze+hWWIwN-dU4j^1v>>lm4e7Ni5 zvy`(Ba%e|+RdwucbX)n!4+QyRbjyz2+d7(~%knNS&AliR=Un!U9!U;%{`iJ*M_P0- z>Nw(5aKA?$lz*#8;uMb@hZf~$Z6h=J^4!P0sQ=df{h!5hWv4N59Y|T|u`6~dwM3TF z7xG(bXsFH~{65G5KKq}izy*~nJCplr+dS{{u0jo_p_RhP5zj?$$J|4Q^8W8r?wJ@L z__9h|>(L1EKO4Y9iL9~evit1EyQP2Z4g!Jw)+(C=+@ZwTrP{mo;6h`9ppK0@$D93DzY}vBdw^F>#TiSp994 zgL~td!}HvxU1$?!+^@XPZrwz_0{z3*sdSyu<)R2-@-c(3qEM3)APEQMVy)w`){RbDuxDrse!-$zA3(WbNF2@|`C0Pg{{Gs>QH( zMgC-i4dzaqSLif|F${N8liw&Hun!IXg_-sQd%!vhgU{H#Q~OS~YE^Fj2r-8xg= z{uC#Vyq@-RyJx4)YyZoy<{d{Heiu9q{-3(~#f@0R#p^?p{v^D2&ZO!9KXRS72R=Ye zuAewXxGDzyv>n=^B6s~QpJn!+$DHaVPtGs&^Ba?;?QR8-=E1nI;wPWXVbhtnK0ynL z{DDO(a^}3tA4_Ch35HF3qwpOad{2Dz@p%{Z(Sv{NgeJ`dv)SVVT>kZ|JxZhM9eWms z=Xoz>NBDk!L;^^0UHlDfZ$Nr7Mb-q_MH@o9eug)&?Xi_l5=~J7|7&2|yAPY1uSc_f zBV!YP2sS=Xp10Q&{l>{Fi!)W$O`P;mS)#_>joD+oi$0Dq6ZsbYMI_|R#_guVqv8KK z#C$Qjbl#++8bc6 zKnK_sYXZl#>~zRooq2NOIWNQ*^rBqIQyuC9iREb2_fuftPTJbIKxu8bqq**B2(8>uNzZPI@~oszo)Is|Eq`WJizoo)y^2%+E5Vg7d;Bnpw=VL#7QO(1Z+ zwANLnS+^N4_f^WSo&6*68gSrE`{9j6DX$Q&$3tNAxtv!EN6S*)^0rIkoUzkiDXhbd z2SXG`#w%?S zYXilte$kD!vvxM^u1a(v!?aOAP>^#hPIK}_8lwi99nHPR$I9-iOiAY?^ zpRrOjGkKzy_9gg_5jSKFHrKybwH0k6U&AI2&q&yrp-XLT&CueRk-p5bvN+JgRfje8 zJ(ubP@FM-CpNmZz)J=Tjlw3ut5D>wb6r0~~`@mxMpy*u%x4hH%kV zq3SO!L9g46QerDPPnh!1f7t)*gqz}?A5IhOty#mUbAsbL=Zi=$3eqmLe$k7RiRWBc zRs9la09XHyW54IV5IbD8{^LBJ+VkepezRy-ngHx4%y!uq(l4A7qK@^d9F9?3Ot5J* zVLmKyPd5hMhVO%{cw6Dka+r?SF@bz69NF zIk#i5YWUXht%F8?{)6iGs$2dGTf<(r;aO?nDo&|HtJ1m3=BLctjN1%@y-OYvuHgdP zUn%q?=r!OlOM#P^%~yxMl7@ ztKer8chbyMzes!_+*=2^d{#frQ_W^$j{!Bg)Dwu?Y*=%x_jQc?U*b#9Rc?O~zEWzS z#|@v_0NAzrjl9p6fw`-5Oa4l{0LlDs?JScz2ya}SIj|+9d2(jqO``JfVRli~}CkRoC*EBZ*r-ZdQpnfENv|x{yxmk!& zE&XmU6FF7-ED-Sj=z8z4CYG=dln@~Fpr~{bq=_^I=_Nsws&E9QcOnSVL~3XWAmE{e zB8W&+iX3{A-cdr4-a8VSw9q@;<(%)k_xtBQ**vqmvpe(7@2!*UzB87Wc|rU`LO=^J zy?}5*Vj3R*(JrD_f(15!FH&T_^-2%fvX8XBVTLT+@uOI0DXz8XWmkQ3g{&xM23!w0 z5o;5K@&7R{?u67r5ANC_Dr?Z}C!XvlO#YywVQznh6ZoERUuDOUxZXPe>=}^HvUK;t z_P0Z?y#=qkX>a8VTNg?cn?=F?h1=g6_YU=HEj?RPp+4Ahb2HNiW}hchYCFLQ=$Xd6 zJ_Q1{t~e%WSrmKl&!0cr2EB9t!P5+12fR`S6d+oWR^gOmV%~G*a&{g~`JYQyx&mM~ zLzG0J*vA5h$Z7M*@|yn4_RHr6nOw@1Y}M4)u(;ANQ&cFwnRUOjpF`uy_mR#|kw99! z^4A}8rT)gOK7H(ka>vmw!VcIz6d?)cvrq^QVA)&j zJ54VNoI!xrF3Ii|r56et-o%(IoUvL$AI_5cQMxj_wv&B+tCj9YB}aSi&pfevuOAv< z{sB}^bCTa$ya`h|!~(=xipoZeXifPd>!d?6YH&LG6RbkAFEV9-HFKofK=Wu-{ z^kcAp8qd#wkv|dYW9?ckzDbW3zFS=1fc(uj@2z;I5!2vseUp))5(s6B>1l79(hwL3 z^mqrc4wiJbJ&ae4ND=~HrbGQfZMi`W zoDLMqL>grqRV#M(_d6J1W&^i{3H**S-Uv~Iodj~Pn*0LSL-PX_{$DWf(RyGeo_!Rx zSb8?pyZLqH*iUhfJbn32geo3{-^T^1F@;QlO67+T(0$024fIg%30=pUP>(|ZQ%vH@ z;DA*mlc6<~V?7RJNvG*1o3>C~0ckdi^+EKm{2y(g@ZDK!9Mk}y@`J@qW@(jj>tzXd z+*uUrvxJjvYGX&xb`Eq5GTCbwzIM2f8>- zOVQAV>%i1Z79UA;4w<6xVRq$THv;VlrXT8>;L2!L>f~Uq&pr0H}K&wp}#V2I4u%aM#d2FhulrnwL#B(621{$h$_66s=3H6iQb6VNW0PHyS zS6`@70p&iaX0t{yy#qySy2tGS?6HM_0o4fhmj&~X)*X-&I^h}K3UF)JZOKE?Q#)luR)|Q;amSFf#!l2Ozzbm_9<$J#97Q6isku(s9Eua1HWs zJPd+v(&>XxG|AqhRq6S;`_Zb6oF-g-OE~*rU)hPoI3pT4(xY@mp**Cw8Ggzo^*QK` zi^yuh@^5ciLjK#5!iOT{^~Ahj6Nn^oHvjhr+-LK^y>zCNu+lV$+=>Epn+pQ8O(_|~ zb&s}mw_n?WVukcdh!kMQO7s|a3kC-Y<9S#hI|cXhLj61q4)Lms)L zIWQmBzX~wZokQ3u#(96Ey{9ThG>bX0^O}85xLwg7@)Y%nw_$kqbUk`RpD{fGUw~`H zaW5L=h$x?naQoac@M8G`sbxCR0J;|38%a__Fs|JtG(9N??um>b;>ChKVFtmrl4tP5K5S`h`IZD3Ln*N>PyozCg%ys19 z`W6tW`yV|2C8BD_f8K z(`np_R2$Nvw09JPeUZJb#4EDh5EO`eMCSU+>tr-i1820ZshRF3?WqiP)~Tmdv3}Zc z4rVfC_$kdFP-zZ4$f*x}(nNA~#)oxP3C2tU>`?gs>-7Ew7oYmBp337MS?TgU=w-;( zX+;y17Mp)_k!1RB$2-uKQ^*c52Fh+Pmeqf0y^{BQj{lesKV>>Y9#ErzoAomw{|7v( z|LQw0WY_;cL|K57W5wjBSg8`lz;(x?|0u(hHiG3=0up~ez_1w4Lqd=ToIkrxtISD) zwpyX({>T%ddq<#kI88>~-1?!tT)4+`kQyZ@P_0S?PXlBM zoJ(dx#@p2Z!+K?G`GK<~e_`Aw zHDvE3{~wwtQQQC1@V{0|2m~+$e?0>NR#$_boGAS(p_(BaS6F7juZ%i;4Jrqa2iJVZ z0fb0DKzJA`X#T$uo`2qHFc=TL>gEbur7&pC2l?k;x7e-}uGI2>1_*iyi;}j$zmw(; zV@bCq8we6&?8d_W7cg9;vh4qkZlPZ>-G}rHkWVt@P_DGr80dez!6*U3WpV}Nm1bt8 zQ7SO&>|A^0`L7M4I;SY*juE}Oa_deTAf{>^?MRC8k}&AWlp3_u_kWm!?0AQ3zM^tF z>|b2vs8;_yeDJ@`E_#Yx0Z*o!1K-TOlC4l(#Zky~j@^3O(9!Xg1px-B^Ev7wRcm#8 zl^Kx}_ZcJuE@cBg5a0tX1uQo3A-WCG?4@AQL7Ob!nEpoyHW5uQfN)&Odygxg10o}I zgmwC_Mbh!{|I3ej=Kr(?a3Lu{Zp*hhRw(=|kgJ*ufIhCvTV<$zeY-1`3Hg_I-Qm9f z3Etf8BXimSK#@QAQlWk%;i0H9949JKnd0g)fnyE4g@xoE5PZC4fc|R>OJC1HLT(|= z0a2k)9&K%45W_nmy?yThdSl4DvmCKY`)Mn#`!ftD@8JK}fC7R?#!u0hXC*0(OXjt| z#kJpon|Is5S7aq3uLKPMRp)4$5^=?jUf1r!o5exc7p(QL%1<9bSF-;6AlVWE=-A%u zlLbjK8Pah-nkycYjI)ki6+sq1jmDaU)b zqBnpG54G$Qk;1>Ro3%I~vf#oMC@cP}WKRFyZ%E>CMT;H~_kh9a`+1 z0%l{B5y)Q2IEU#ctKx85N4{D>=JtR(b~0mN;%eiZKJ{-*CB*=71ry)|Jv^8N9aA!X(ga#SeFGTr8sGgi*K((b7eIs4gz`AjxXjU6eqeue$F){8oUh#Y%7_oCG##%#PNTI znVZ;q!mzCv%+bBl4C-7AVkcpnV*=4|f0G(xRg&`~lgsfEtpz!dE5j_O zr$V-iBlkdfrQ+haLMF3&Yr0khal9$3v711pXACf!ru^O*&Y_Pz%#&Gmzac^6PEX@w zOJLH2(gB3-IaESM!h(>k;gZ3K(Pp_rvAnZgiLb@+)K28fVE;P*)R}LM`Od=&`3nWA z2Gb+CBd-gFN8CrW^OYUjCq>E?tWQHXZcd(lk9M4N{7PH7?X&Q30li?eV7K7@wMz}K z2IdZpon|l1?HUI!n0!jP2j5gJ+-`S|GG?cXqKndN7mN~)+K7U21$DFWh#hfye4nJOvv6JVnD-x75>k_P0D88pTf(hPKkqr#i&roYl-e zo5Y;2>Az`YpjdVI`{k&pi?$*E4%*VcbScp@~HBj@_?KlP&~8CFeVGk zN+B<6v5V=Y@Re(lb?I!f1J{F#IK2j&K7hesDSBG^DfxT;fBj643Hk|@b?Cc)8Cr3O ziT=l67GrDkT9W*_{oVSI@2j9THXZoGS5#K5RpSmVvA>+gNXbMyKQ9v!l7^EQepfmT{uD*-}B$=ImwG2hit#5Odne<~f2Mri!n*y0JoPtcru5%lCdxhNO_I9b`(ZSplE?Y+ z%tYPf?&dEa>8;#4rd|3)zmJEGsRia+{^RE=2ZC#!0gbAs8-FS*XN}Jr)()*3Ezbo{ zNB7MK1AH#|PY|P*yBCQ4UexxZ4UG^4~sSM#PXM9G|1R`T2E+(h#-wBaQY90cQVVEu$Bw_6EP=BLl&l=K-h zY^`gR4KbBiKd|(qn-p8Wu&fQOzqj6M39LjD!bF=UUFUIR*xJk1@cL-96_Ee7$$ z<Bhe0=$I&s#Dw`bR zhyYZBc%x!~@dfy}b{FyM^6q8mS)}k5cDo-UO1kWG*=NP&Up>~Z)7q>2?>dO){*{7jA+@VPP|blT30|!Y0;)>6gaCU z9=0?*KL0!9W~Asp0-wwXB0IOv>sQhqOWkt3J7MTncjs%B^P9`x(t?V_A4}5JTFZr1jepuItd)>cLedyCY~7$ls%|*Q?s*M707bWip-iHXiPNI zLu;-k3_vts!qcWTMSF__F)!U;3ct)K{qVA5QMuE&ORkeCu}H++*x&s)a`7;JODG`U z*ZeqqF=6{{yHw;B^JVn5@lS;GMaQcmOt$-Rv{qbP5qDE~-V1TBwrTmqK9~r1 z`W|Qfxb`|5oQ~@R8)3t%i+w)Otq9(#; zF(&hub`>raN7sMIEi~Sq>a)HLV+&y1R4{C*|E)i7kA8ZQ_957zd2qKe7avCVs(nJ@ zUFMf3AsJ78rr*%`ON3D!rlWomdpB0yUQHxPV@FMRRaL9iKrV$A?v8>dDTTxuqNJ0Q zRbs1o(z;uxZE+7v18>BHtKC0_Sk*+t$9Ac+RR0|x_ZsizDlGGEN{KHflJI;-R7dH1 zTnB+GbB|I7{rP#Eg4za4<{rBaI^_ws^X;s|m;s2|Dx+Ak@83g;-1`KY0c69Ye`evs zTev@m1P9mn@>pvW=ostO@un1arZw>wW+S+tf_9?Lf*waE3ueD?trg}IMx$wu@7ciT3^>X+|cB?Ir_1Kt1k$& zXgZl>GtHii(HIr9f?bvrgJ^wBd4KZz=$VISdwK&(&fMWE96V}UJX|#~!KX2EB=R3JEuHqRN&=0(6S_A3Iw8ewnM7_flH950S@n833c9{KA<+Y#|xx3dB z#6{z5SMmtt=rH!ot+>Qh2;t@lm-h#MYTe7XJCZe>%Yjs(@B^Fia?!4@U;~6~ z7+reMIOQJ{w;feiPTbfX*`&y9-Ejk>F6tG#{D>ZlMK}6nHMTJx*~F*WIc4@}io6Wl zQX{lvvP$pEvfS`tU8&dU91fhOZ9SPv9=GU9%It!F<%Ew{yHUN)Ov!&QV#|5rIr31y zSP!jejMOiMoBnv{CSj~1YO%KZc%2%}QX5-ntKTm;HoSM&gRVZrRI|u>bdYU~ZcoKS zs{Z}7va@ya>V^YNeVoGMEvwqqdIxBIw1RSFNxhq#Pr{~!=wQnFixUQ)6vbxxe*SSb zHzuFBO&jNag>_)L3b}{SV(UHl*LB{XV_n^CW|lSwcTYB22C0%3cnKpjE$4>rZ_RHw z^|H@5WYpvksHIfhx&QHbI6Ujd$(7UUcPBEoY))(DsTy}9jPE)kI^e+O;Vt6n2;=Wi zxj%dlAG#E!@NM?GTpOU0a?hi@yhjk6-*Gnfs?+afa$144xaZCv%s$4mR`uqd*bWi7 z*@9o61miU4IA=oc(>e+7xYL<<*7v0qDsBmgUUTK1;)dlOA2VCCPIU>zJA@ef33E-( zqh}dUs9a!yaw3{XUCzy86o&?pUJcX9xWr3XXUU%9!_?5ze&d$mJ&8N*qw^OFuJeTr z&*R%SpKHwM?H-#;q`~rz&x$_v77hD06fW)FnX2u%x!r(qJtp5|oMqTa#$N97J&XQy zTHiGW6V-0NSZJEq-DjH|jW(t^Z2)q3S*miR5WqBllti)_ zmD6%QOU)%^?ce?Q$Y(U1SU4IiXXXwy;ho}dWSCd>cysA!-=OEun`$fkn=RPOCZi!_ zyYWV@V!NO1`{m@L(yD-F@{hLjm(b1vhE1Q*_g*4Bw>EP+p1+B%=l?yOr8pWRI=u5@ zQsGiC-sJM=3D?#b*Hm|Fi|L!^nK>0j+0b{VXE`m?0Z}di##srwqb<`(0y|x&hB8x3 z!xuvvbn)9QuY4JesB(h>EW=%NpFFR2uA49qP!yjq_m)Ta-~Iix*0fEkhr`&MaTr}= z0fT!cHFS)@EjI$wJ^Q=jg?U zg~yegH~b6E7Ivo#YbM@4{i}VtnfXxf&rV*okH`DvQYS_cUi~))M1OC-o~iWrGn{3?<_+Ml(V z$n^U{^^)5}xIr{J%!aMo<@Zv}N&d_teI!;fP{h9^Ve7 z`8t0jeI|I8#?G`#n0(|-s8DS;boy?y;7>Cpy8XGsC3N9 z4SD^Ks)Kgkmc|`-_bF^Lut?m{MNfe4r%>SW3Hcj4wooeI)dIg8Q>zGzx}ejHr$ccG zFkwGogwe$a*X5$DAM?U&uA}McFP1F^S5^YT@#f;2Uva_R?*eE>9^1B>`lL|?Y{#`k zHU|6@dXpv@WqVvZ)ZHU{E!{x{-72~w>cj@YDZ$}mX~UPYxrxca*ATq>rw-@bO>Pt4kubNEQ8Bs9y^QXcke1~nB`eiE6M zSiUp7l(Rg1@?KO*IIU<#fbhXyX1yfrVEdzydH8dE!Nvwe+fS)^`f_i1?M07>af*$g zoLx8L2MvM?zXx~N0@8p)H>o4^$L7BlH?IwIqDc;ZzYV)w=IKX_q=^!8e(X=e>RW~< z+NA^^D@uO3tP49WG8Wu(o(&Vj2IPN=ws)78btxex=B-5qeA|}DJNF|-KROUkjb?iN z?yR87%~^k=Tx8eU^UdtfydS;;)*1HD>c@)9>o+ch_N&nub+h(sHBm;fJWG+6UFg3< z7Z&zU9s7^p(S=p$id~AFLGwIpFD$R6R({o<2u}GqN>eZPqt5H4`FsQL?&aY`l}=$4 z%>+9C=EjBQRDkW@208MXHPA10)vw2e&T{fD{%qbp4s- zykGvkxyW|Uqvff->4r?j^6_tv;fB9Xtq)b7WmC+L_=_%W@#NFIO%DLAMOZ3YR_>gN zxV$Gub5Fg(D_0fuF;!?*xJT=0omFaA)oKeDRTzXOoPH58ho(|XZJmv|zx&?PH^Ma` zt7g3X$|L%_S>Fic8ljeTn?s$kH!1(1a`Rh`9WMI$X`*EBrFrYLhiGa)Q$=E7sGobb zsI0l&d7IlahsNsPoWmE|@X@ok2jOl`4F)NqFXT3>YUsW6+!J$;PY5pg_0xqjqbt|e zaKrWiE?@jv{jB7-n+h--LraVv^S3YL?~LvqA0C~t-AF4Ib;8shJ)WOEdEj7>Rt()cnAr>b0VEz!mm_JmI~kiv4HNCe}eJDz`J*B6Fd6ZLF11Cn?Z z-4pc#dH!I122HkH=Gc9F$kB6TvZ6Wcz0{i=JXv@W`t9`Qr|DX)`ZNT;b8nIPmnePD zyoI*O;#GJ6RbhdG>_yLu(RaK3jcBAl(}|Ln&k(&|Vv+NFT8eO|CAP-=%VO<$*eiai zZ-paT4^yn_STM^hk*CK}h<7fD(|1}F0)kxBNiXrs_Y%3!xQ5=|oT`)^K7Q)H7QndS zwo~wtZQ_R_9ZY}bFVhC?)@kQI4Qz9%gEPa8b4+h8{r-4exO&>J z*zadod&2Zj-`8-Cbv!zr4RP0D{5?(WspK=%6K0P1StMR@d|H3YJq^5&)~N7j^dxi% zVQhMt_3N_nxZ?DIzHwzYA|FWoEO+TNY}WGj-Q?HaL;Z_?oZ^Lo(gIG4eJ$M-evUr< zly*6za_nxUSo_B)CW_@?mK7iRWoEQ8oVez`?Rv?Yg78;dg&bGN`kmFaE|(-v{E+`% zqJV~_Er0*+S(jVfB>ZqW+Fxp722JyYZ26 zjr>3)u~BfABbEcHa+nUSH zGa{%BXhq<6FzWqRlGrSyibvc-HCc|wI3cju&I17z#Y2(}g0(6YA&rE^J0$*L0}~!! zmdRcf{RBghfpedB2+Z|@S!9q}zs``Akk zrHQdN;P2~5SSTcgbH8&S_qv9QvHE_!jts9RU`%I5fkMgGGWe3>V%|H@9SI;+Zk1Lv zN&Y-di#DaEE$PBoe&;;W_TY6`El+#d2EDlFDDp5iXz+r{w86@#lXhm<`AST$L}{t zFIn(-Q3t7`H*jwLG0qvzF|!#?%qyq^%o&O-hkQ?~guo|)R!M-P2#f3>UoxS^lNqQI#8Q%M2G%AO`+bjtRGUJ~;GuJ14k?Secs<<=U08qro`@G9cC>@1a|)P< zy$60IGcO789G=10PYsxw)Sru*+Z;mX{~w1{SiQy-)r@zFZ6iU3-u! zC|<30RoexDi^05a8Cf9_E5(zAl3`zA`DnbD@oH@-usJOXl`B9sW~V`M(Hc*EYy{_K zO0K~cfvtulvUZ)N0Nk@V=Mq6I)l)+>z6!V)!6$xAMPy%IB#Si{QHYiH$J6;UF>sd& zFr6s^diV6a2|(jG(T?QE1I~SzOo81Z5!=DoQ66aliuNf4iy&*Gv||M|(1cya`KULD!ZwOLw*lI9R#psuVr`l{HUYXk)1*8`?APdInL$0h6~Kww(7IJV7K zlIKPkCn^={MEb?^BU^JEc7?-+$?GmdJ&^x#i{jDNJs-^KlAf9vz|ng?Sn?%FHEL|c zjikxuaBM_;5_oPA8S(eh<2gnQ^UYseL|sh86EW2$ZE~?4som>DYB+b?uavnDNR@xO zyPET`5knvKG1?$8vEjPwb+_<%yQSf|LEsiCb4oJ^3Kil_=hEOU%(G0&BGX$(KShqp z?C=$+V#BMI9gDd@aWS`c(L_D?PsiO4bB@S}$)&vJNo>T?uhBpVCc^Dw5yYGf#q+A+ znmk$Cm{S9bJShrQa;!(>Med32QV;=7b#;4UL?Kox;?88|ptcB`1~y+_2Juhcj7RqH zlNfLDEmfpS;r&^Nzc4Olt$Px~);-Bp&4I^rEOE?vlJ+lj%XvqGtw!!4$o!!UWg*Ac z00oY4kVH^4kmK>KOZ-hRkl4<*V|8LX<|9XUZBrV!@~g`sVL2}HMjSzqDvA;?l1tjK>Yu(0XEg97rd`dsS(5&pUq!?O=%X&F#-GND z48pU%lwMP3d^~_5{Htqnj+Rocc}Jv*1+OO6bvieVEp`xwVGb!;K2`XV%`k=CAK9V0 z(jt*A+qxG94J0+fq277LzI1yA4T}XWI|{|WT;nUrx}Z%SUD|cL2LAKbxr<~)Z@Qd) zg(}XPUr+7u7wOU#7V8M{&AqrqL$nX4^NQo8T5C?mG7k!MG^Hdwp9@NGYT_4O?Yn?b z*7gj5eWe)6zGpEVal&mJHDSbhWQ1436QbW$;XpjUDolvrtHOT{f-N2q0ymjcv>27q zk_OzQO#UTCcIFOuknFlgl)^;R*|C5wZsB5jg^uUa!1qfHRe}PjPz2R3gSoU@{5)-c z$fOKuu#&Iu7gtu?kj5L)Z&<)j^4&>~9>BTjMs%C51ZWz4_edVjZEGah)JrPn`n}@% z89N+ZUcq{10_Tn#5tv&BJqsE!BJ#oQ`()|rSi(5%3&7@NkDwJjWKhsE^O5nnYw$l^ zM$iT_peluChU%&cY)=2k(Wn;?pWq5R1vcNC3?td@ibsI66e*Vko{LAJB8SN@pm6Tj z1x`djMe@tgO`;&H3M)tQOMYAoTY(ud8B=_i?>JXU!csjvLGRDT;5Wre(#R2}=wwRf z&(E;$M7NEGe3>b@X10YKs&%I-@`T$wc+C&kiSAb;i*uovm7I~AbIzpqzZ&WXHqxO8 z+-vs4Xuu6v)ia#w!Y459bi}u7Ml%%oYhG+5Rvu+$)Mw*p7M@0ue(i#_W^EG7F2f?S zOUAGyyoZD|xmYZ!_SO^##WU`q;6=@FKI*~k2ctYa?DqVw+SG-O_-y4v>w6s+qwA=RxdZ~IcN^-&4!~eI z);7HcOhd^AMH)3KbL2bZ3}Eh{gHLk~m?gJt1Dpmzp|TwjM?!G!GDk?$G6_p=B?p-^ ziPcbPJ=qK?Ds%XN`iK<%Q)Ke>+y*kj^t_C{ z#tpxj3+%@X2N(wM0q2v7zc*lElFp~WmEQ1);tlbc5bUeG@1kDD4C2#l;13)a}PIA=#2!_`llh8RR$$gs%f6@Skun$oiOvF&E!RnY6 z20@J?+@Exwiw2jRd_M=BRc>gjrILLa9s5RAPZ5@C6=e8?p41XDAv9M+(*N2)k~oTC zrgBuDa|W?^PbSb_(Bon}9dqZl0B_VZLU*PNN8^M!&a8o=0CJRrRB0&RCq>W(Z`iJZ z{mH_f4JA-rFfxdz2(z6@Gf1WiGo9(f9psG>#98c$>H%o(24#4UBIOiW+b6st*%awj zK|4ipRgiwP?+xXl3p2BU(ams#y@>D=0vvfBb1kDhQ`m)-C>f08Q9ub(5R~*w^q6L| zDk)1xWnxe?shHS=BFLAPK{Dg~2GI)6&A6Tus7(f3BiO_bV#zJn57Y?pPNg&6Z z4+Q4Ku@T*+qk+8?Vq)!zbak9z)xZ;_ia@X^FE=}l00W1LY-d97C3+u)BN=2j$3gYn zGUu^p-_NwJiK$&rY06pe;+mxkPO&g=_GG~pGp-9ZACg+;jOzzAk_4yNG%}n$ zhOdK8S&50*V#xaIW^?iuisB-0gJolUrSIv>rpom-@2*O7D&Ka03FqU3*VwJ`qIT0Q z@O{xSXEM%`S=x?gaPIc?%D_vKM>LhrbHeOl`;P}WnmEik& zmp1OMD$ae&bgVPwb%aEzPc%=y7|^nKGoaiQo2iP)Qjg|J6@zmxs%vASAzy}h6{tRc zEDx`&$((LdSNFl>@NJM^2;0G2-VFE$o0GP!r@3K9?FN+QIx`b7d9h|7Alo`?i#%EI zyU%WvXV>6DgiNVs82Af&?99?4N$`*4JrTfp#j6aQHl@WWVhBudo1dA{P1+>=#vEzH z8R|#Q?!G^L1R3gwx5>S(GrWG#Zh1ig36uD=@R|rrW`a0o1ED}HFtn|3bPq0M-2RMs z4H+M@0Gab@*RFfO-bfs9`8=03e-xP*vH&$>jY4?aNq=KG|6xg*x={R4APJa$n1s^R zT?>53X2OqwoY<3d`v zo-up%TqP+>^ddp2b4uZXJHkJs3(n_&UI+Dp#Rf#HZ`J`(GpNIih((SOI~?bN zuq)9W8%=LIKx&_n29G+zG4DFKES|ZN8GNoIo45|2Fm~lX;sJ^sS3vCai5}#SYBkI{ zCT}uq-1U~|OY!A$QQBcmm+}@aR`BNNOY;?YNP#Kdh!ef?r9PTwP?J<&ULveRU%3GY z_+EC52Ab2OP<}i6bNYY-6gyTS=3xvHd1q<;=@^8CkM(8}Vx@@R$sQSNGz3-h!hd23 zkxkIptq_7T+~%0@bPfi7#?+DQZA$X2r{fR{gNRwFk5f32TRn|0<(Q%mCQmK}*GVz# zI(KRj9pFo|@u5v`v3GjoRhz;wK+*2yO?v-#mOKcU%w^tPR43ZQxg`W@n}Ap>=~HR) zVQsuZ(+>e3tf1}zNIz>GQm7?EQU_mz6IwFB1*+3_Ku5dCc!N&Wx_3FgEymIe8#0UH#3Jmg z4gqsa0JQB@k}LDs9fsYcW5a4#Ap$fHy4{ zf#nC?x5>UBO{GThaPO0OLE(DYxsBLE(3dma%eh5p8=7lho9K`1R>~bBoumjG=N~3h z1b`YfZJf zyVztMRq)nR4w|WiKV+L~!ekApMiFE5p!362#FVfu_K6BMZxk2NutaIEtkm`HF=cC5z48P$Tdo&3UK8c-G#O{ys?&%mR7z-n|xFM;10-J*i@*F}+D~Q83BZ#q8Q$`j0Khd;FxX zB9ON7@YgrYaLR{gkM+iB)NWQcnLVl_xT^}-aW~3RcZmJgw9_(EITH|Wii#)iV2Tmf zIkho))T8mM(?DBez*WqNTcLKJ{9rTTLrIL#WmSPtBg7(Z-Pr&eTru`}eD<+z1NDg`eZwUE8xuga!Zxd`z zxE?xX!?=MR0bnPMn{eyo=0m59SvcVqnvAQm&ziFO-9;GAc%>KE;Z()jt{~o0cbK7X z5)IMLS_0nh8)C{RkMy*{>YgCFJ0Sj_#aV&WS!74vQH)2xA1fLh)tVTA>MVl0>;oy7 zw7lm77u2S~+&2?`mnTkKE+$U*i%Gbk{nvx#A9XS8FmOcULRTIE2mD+Ft`n)N9c}_! zIR)2jy6&|dIyCFU2BjR}j2i{8W6K5X&_8TY*H*<#t+G%a^C{49&1Npc3CVjV!M<^+ zp*ZIOzTh*_dY;3;R9OEc1~w>%P3!Z)sJ_xLQ`1O{wY=;^v6&!hNGaT>C2);KahUfo?se*vBC;C8*m;T2mIf56 zNt{my{SLGD-|PIL_|sR~?MJiCUlr^EWIrYJX&7nR_InR0Puc~iYLE7Ht*D@3exDVU z&9h+rMJxADTlC#+V)%m!68C_{T>J;xWWK$7cs$H?nU!ab@o!j`e?aikJ zbUQ^mz3MYp_np;_@K}9b^SC;R2 z9&)tsv_1SWE#(=I?xS~Nx5||1tbXZvvbMUF1w11bcc1I4n6=^0KM}U#Gry!`E&n_l zU)WMGTaOtM|7z>e+mg!Yqk^6pd8^y2iq1a#XU!d5^wZ48hi=_3^YHylelLq3dXHno z^U3VnlZ*PTi-vl!P?Sh_-Gkjv-9F-;D8r%PtMI_RzKVm4vFyX)5}cTx51 z&2y)9&vbLw%esr*6V;QVl>qh2u9L?8Mz1CUh>5Psw`m^KNUz2z?Pzh{bV%W^P<)tv z5oALv!+y|Jtk{a+^!JtKkO?5P#KgozN6OzXHNL1m4&Tuy6m>O9 zUPhgPkBgQY6EA)IcfQp;d#mamVI=wI?`O5D^$-5kK5L9Djowt0eY@AxANe(|eUCj( zZYlo0g!NLi9m{U#M^0-|Ar(u2+91lqu#NtBgES!)~V6iBT)O@L3jM1G_h;u?rFAAPTfCe`#X$_ z=RXspE+>yBwrPHfat2%+<^7y}aM80}6cw=LDp%dRC*YFTQ8%OYJxK?1DYi&bnaoGJ zC6%Oq&5G|g?8pAJ*CgwF5U;Y(KTGx7AL?JQ@*kG7b~#sfs$Gm9ed&s5H9sgQIa@(n zAAd29T)aFUFfiK%)}U%n+pG4GHhwaQziy)W#{IWZ$ZMGmt&6DFEq_?dfKzt6~(w=mDe zG;)pAWb}6p{pfy`Qj@-tpI;D{!{Fh$>_$ODXT@j{_J?79DGc}LjXq?$2 z&X)aqrmCD7`Z21jj)eQbWB6JyUhO_p!faJ)rYP>RkEuh%M7uw+!|CLj_a}d?gE=(C zsF_Lc?+MjLp5FNhZD`!`sy>0_{8JsWkqfd~NqCIDQ8w|c+f=nfaF2PZz?vX&B5sql z@X-ZuGO%DBC9^-t^AP*O?BHPaJ`*V5soJM1@YR*3z6#ha{eTifdejrAsAgb6Urv zGTt$^^r=_{u>I1hHMEz~-0%~FO!7<$zb#fRtrttE7n}Ce`L5l0pgHcJGy!a&Tm^Uq zB=aD>yIC{V@Ag|_63QHJ(12UzOek&DIjD&D6V^R7%04I<@)xX_)z~-`gQ&i+;X}k8 z=1?WQv-d7hPk2;u6#Fe92qmDIQ2JazGs~zZ_qk?e@{mW|gpw0$)z+%ThCsRWfJ zmY|d5R2~08bDT^d8LkU#a*yq`Vu~uPb*AdQw25$> z;DBk4gxd)v+wm%XNEsD!z4t+3N(fapw&lc?{NsWcCf8%N^=-b#$|w0nGQwq8y{9TKU7cfSDa>gqzxH8F`{>feVJU&PS6+MvnDN9=m06EM%2e;lLp{92)(MS|*d@8BdO_7d9;7{POZ`cE!4)&WLKK zSeB6Phkc$dpI5mB8-A5FdQ*e?aU8gHT<1xw`H5DIQ88oeIo~+!E_bFXpXeLjfFz^w z!_Fc5yy*D-j-fwawX@k57wcP5RhBz5*K{Nw&H(wtjqh#=C(d^+)-z^01lD;5)>Z1w z$UO~7=G!WWE0y(jPN_R|@ZR!eacZcmeAdajSRc7F9Wd_<=TTq;}YVVmbJu;A159}y4ot4duK z=Q@>*&fm~IG75T=6q9gM|JFcf^M`lkt}ZXR3fN5y)dV5`f2W2g>jrkT2hB8Dr!tb3 z4YV_i^I5z$Un-=27g^gzthKnsy;LkHkeSA@N`+HR)8h_o0b` z_@Ucc(y>Wpj$`Vkf;f}=EK<@VK*HMdusP{LJs-D3y{%33o`$YHTB1;(Dm%${m1YpE zfVNc}T{v!dQ17{9s1Rx+xxb#|jQ|!KRV=_isYlx^9Vo_{jrmxfgx4Gu8RTk{`>{yOU|O9@<0ZLUWgt zrVmQL${`y)=>9CBZ z%35`|OqXPS$ZYa-2EIZ4&fNK_vRtK79D?+dUfHkIvLE0v(a$e7REidzvoEB4C%^Hu zL5uUz9lmNdw!FFw`n0^Vfo1A<5m~%qvhO0^go2egLoF?G{vQBGK)AnC3tXTut_y@b zJiHLJdcuu0UY}=%tKAc72+VVZ-3y{x{)Aqa56{=&3L>cTI3;&GPBG~yJ7 z88Q?WXfYHjY;H%hE9|KZdQj8>e}lJOiBIUd6q2D-M(8Yz%~PRa`i9biLM@Uah1Gcd z%@sc1bXR8}5)Sd$iVW{7miLt?ta5?J-8R=B33-}DDJu7t7~X3vHO_RAY*q@Z^r2#- z)g*-RH%0F$RvyV02`#`g>GCBMU7o2}-Y6fbBIsV=UF@m!d0hTThjOpst+EA{XbrB) z)8dNw!j-rpK~Jr}C7?9964?qAHp>%i2?X0`HZAnH!}V^L->-Hkq1JaXA(`R{&k6=Q zLQ%;qS1{z6F+I>)?enyI{NboZsUC5Y-xEY@Q=f+S1ua7*hBYJ~r&LXo-=c4;^?^vx zExK5#VY@Pv7MF_NtaazoQZ1pP?e@tZdhoBQW9{5bBL3z&Pk2E<(^W5ZdpdY-r$k)A=-svc#ep`D>Yd|h^@hTppi-E8=1}Ewc+xVg z@j$Q|WlYUbjmtGMQoi1Srk0*B{X* zSgaeX63jGWu5^2vJ{81M%oAx(@3$C1ha3QuWH z%HxeA^#NCh(@Ba;3!G(@h0c=6CFKRq>VnFu66d&r(u#t@veN1*C@Ko7%8N>!h7++< z&aKXqPNfESW6pERInQ~LInOEQAZLO($SG$V=SgN8qbD$w78waK0XXI0>^%A4tmTK3 zlMb)WxB*YS(HZTNPJIt_{>56g3)594o9|geOrwl?zZS9^Yh) zsPN5mw_qNegYJZC2v+*M=sK!ucEl6mE=*f@8{F!p9YOSM6bL-Z*r|4?3Z?(>bfUcp zzBwLO^Gv_5Ge*eAC0EcJQasg*k=j(3zuD&rYT5L8!<{0KBAerhgm}h9i&E+*5Y#=j z>Z|vJc}~&T(2!8GGco42W7KG#>Iy9oO2sy>_q6f}pWnhuGp1;HhT1#Aok~Ei3AEO@ zcr)alc9gr5gfTcf`M}{Mi(Nh^@p%?|;CT3R@b=5=v9z&q35G~KYW?7elgb(!eF3-2 z7jlw@iePJmr>?}HvbgcbNg_Os_C^dDem;UZ#eh_Bk|joA0pVjzZK%o3D~e;7_fK)96^Rb?d@$O_8}N{dR1##NORm6sNkmDdy(l~z`lmljkO6;zZL6-ZOL zAl6hakV8*Ff}y8C4m|}Y8F~t&&8bg7cnt=c0y)qWoP3}ukd|1%Ut3}Yaf1!~UjOV! z025Um>U>ghBNw6NFP`TLRfpWJ4o&7&-FB~kMx?#T6Kn`f^LRQ`X%jk8l^63AZ$PT7 zz5}hBPlO_#f=SI>tn~2$QWuOU77nP|p$gDQ1A(?k2UwL?k-37M70s>=%(;+F^K_o> z@`>Kz^C;^(L*Lj+-;t4OaNiDXzd-hE5-=#N>Q1TeI(H$iboY_ z9^OM#5r0G;PJK)g|J+JHD&W1KfcK*U(T@tE{iqkJGesq;E56^R5-w8vjy%J5Z)*tftLolKiE6ui0ZMKDf z(J=~jja65ZydVligDvERUKp*XLedcIR2EizWN!3(!iCWqDwH);7*i7n65xYVNs$g zJg%y!qPn`Kyr#UYu&A=8q_lE!QAugRj>p z1#v4aClXZds`D#sO67L--gR8OuhFE6VpMd21z)D#s~7f!A&t0}H7uc>f4iwjGX zc|_EH6-7Q(t%23v6P&oSW3h|T&o+0xd>fU zrQXnVS11e%C#VYaBNTsfE|Nw<)P&$FXKDQXrHQgqO3JFn6%-ejI7=(X)l9CgtS+k@ zS2DS#dR#>fN)3~1LD{&ng6fhorTFGH)RZNP3JS44Y6x%}MCoAVyf6}0Ei{;zB4}BB z9pqh%;i{Ie^?2`6T3wYV?DG0TlgN~+N>Ybw2CgZUN>;?;$nB}EQmRnrouv*RpfDPm z14}}c)ygf?r`9N8xm!7BdJRGG&#WO!_Q*~7h|SZ{4;hHC~9 zW73$~nTUm;RaQoVL1Y1Bs!Z@QeRehi?LUkrGl6R5$;srbzo^yQ)dcV@&baR{*CSGPR9jfAZQKLIf zpj33TXiCkBug>L1sWpoVgbcC7izZI;H8y(1#*Y*Rg5FkcGe|+JFVN)j$pK8nF4nJV ziqfNKTz+l?lg5zF0C58sa?jjh4J zl8TV(6C;YYgI6DMyM;WIK#oY=Sayl_pxj-q6+gA^>01=>o)fT`?w3?0t&Os=G1954EQ81zM#?HJK`!&;+<~S>+9B;jtPD z^Zhf;5};^nL!lZiXf!4u$tS7rw@3@m9B)@ZmUE?Q?Y~ zVr7*bwS7gK(K?gz)&M^36-87s$K?&_yfWFSNS}OEivAWWXyFrUj6Nn(Uh-Yyj1|uG z$NKAe2Mt4}cIlY-x=z_$Vn10BF^kOfpDYYdriO1IM5ENawIRNPFeeaD@)=!?sO?+4 z5g}fUh+(IScVY~%Fcf)(xebKP%9t$PnD8QX@%A5SukiT-OCYHBhm=>S+8E2{tk#%u zPp{MZXjG!~(f9z`I}}BP<^g3hIXwWtQguoM?!+!@!bxq7uzlQZ7hU#0`t`!vY zw$EF@my8{ltGnuz*L21zt=-X|)RKsGZ_8Y4dn=ye-WSTGKyXxv9%KNLi{*a+MT2^!U z*lgGUF>;-ox-jO zciBwrn(;tuLqJX5pq{kT2dX7H)7M-d?lcO?o2)^pE1k$#r@hlQ$`hW{SXJ$B?g)7O z;g}~g4yv9oQ4W_Fhu|HBcXa;lB~ebexs*Vs>?Vl8B2gG=MJFf%rBVGwAm#Pd$sXWj z0hGZxK~ah=KVxP6fg^oL=q@B<#=g|eYd0b5%++|X64 zyiYYKPQEMT@+HtJ)t*47=3hBjkSK_9fMT&xFGhtJ49c#h>QrT{=Qg5J9DK$y4iY^? zcalKrOHp-1NE{CN`M-owO59jGnV*SDpi+GHl;*?(K-^T)b7pSvlwN-@A4U0ElTg0 z8EiJzPv@r%5^EKkA)y)z`anoI7HOzeH-r)-YM5FA4GN_ey)+oL;f%vod0~tP`H2Ig z>@;IQggI`|po2!?F|`>@xL$s=)kuSuY|tDRczw-5Bh3uY(r_)`a`hT0)j`BqdAc{) zYAA;x!H?(}bUE#`no(V}giofQ<857V(f}1cZ>zsu*%xXEM*QmGTEl+HXDz`dVx!^M^?wYh8vB0{D&~ZvVXlniGhw;4_yS83>G`IC?ufQgs?AJVe`V#5XRaY>u*qcD_Gn9*S7Ggp&n))N{70QNwtC3n6ij8K2dCJQG1C_S2G&D_k zsiHd@Yt@y4VGUzaHB?nbLg7GrWxy9{_n#yfh6eG9Gtuz-7iOSQPvTz%7*<2TP_E9- z+E#Yr6#oway++mS;V+bMmq8u#w?~GBBKJ@d1QE-Nc4bB|(${-1oG2%W5)V>*fBGch zW;DCS=L>%w(@Da_nhYliILG622`fgtH!%vs2b(|y%X~LR?T}F%;b13Po2#?V>+^X- ziNeiWfRddT2pZ|?BOOYqD%-IJdY*@dK)nz1%4AP?iO1ttRtrW!@z{KbRQD~sMnTk3 zw1U4`|I1Ly@${30Q%}2`EXY(mxlzeQ48@A<8D>>WQ?NZ}xW0{~Vkg3|G4iqhugaMpP|{m|2H~;rh+1$)kHgon!nl+JO`>2Y3n1oq z!(m0toCd1sv4%v3+sQ&09gj#f5hlDHlaBFF7zz3t0?Lsh*i`&gSjecMH8%$h723{t z!T=a$mUbr8idoWdEW?D5P^+Cp?V24v_8AX(>d8!{o1x!$+B*y*Sn3TK$+ctgT{{Aw z04hSWd=UesVv0`lbQ;~~;x8ciF%Ru?2IFuj;EJ%p(8rGj8Yx7XC0wR*vq!a1!~vW{ z;dyW4ww~drG1Kpv=ju!xM05pZ_fUKXkf;g`CS7q#C6Su1ffKBJ6WVOkxmjsYA{dk9 z7M{{95(LD^GRK4F!xz;Ff~ecG3ACzZXw=FV^EcIg0~PN#UaXmwS1CpbDjQ7ghDsO$ z!2~LP_}EavKPz8ssL?)pY_16g+7k!U&X@3#412_PEGKP-h7X0IDxnfqTLPW>0z08e zqzrFewJ}@Hs?})FQ+-~(bDB`E>~1F1YH6H2lo(zN3bomtNHrs|3Y9c767Dd(3x=OT zXEc<~)DEv2YUj9?7~JC5c3O;d(fK)XD8*PYs{K|Yu^fy3uS33K_8W|{@&M2bWowgv z{$ZF}m+gZ@VU;$8A>Cju)qW}^(JWizYWEtcmFE!a)0uvGFp_^CXV56c=Wm8>BcZNd z8MYIuC&zpnXs}%J_?02wa4=Ke$r?PeW_}90+iEg}<5bqc)gzm5&b_0-RN}ckma#V7i}FATXD> zBfjWX4;_H2UHM{6N04;TG*#s-}7= zW?jU|&n_wgaX2-4OiDeVsuKkD9>mPg=?hQ0aApNPi@j)We2BytF@L1%TE+vAfZ=R>A-V7BbvcPr`3?f3nIdRVYfv1n*Zm%XCKnGW4%?~EqG@clJoTvc?SFEI2Sh8J1 z2vbDL8@>9J;*Ry{K9q{e_*ZICpZ=r2m{0!nos@s*Ue)QxZ0Sy@=0Dbfir3WI$G-9M zxZ89|t3v#*30lx9ns{|aMOs|S*|WIV;$`t4 zKB?mPZ=Y0g!moj~PZU)je`UcpOV!AP!$+2O{>>Xd_EU)hA%Uiak|S!##Xb=KxeCP_ ziuES`m~Kp$U(J}urjn* zJ-(pcBah$J@#Uc+#8{=xu;^XNoS>Ae7D3!A3`JbcKm5c^GnA51W+sLDVty7y_o=da zGFA7PvL^Aw_)tt5Rc`i2?-Dd>&Z+`+4AzB=`nWE7zEx4`yy{`*kWSdz4i z8!SfB81QRDa41$YHQer-g>`w{7g%w#&X~B9$bS(!cCrD+JG9MfeuzMb#K*7N zF?IFxSLtokW-6sdgiQbCpc<;Bi%6V>Qq?}4N6DD()E{Z=;6Jgbg%sa{E1qgTp7Afq zh_chFa_#dn5*A%t^NJr3SsLcQSrYK`DOFqK*Z8zav4M9=rPZTb!f^Hm1Ik$(?OPSX zS6i{?@x@O87#`IZKMr85s#U)iR6N>GZt-8a;a1)+F>dV_M{L6hd`-5#73p z3bh|t(8t7I?8N3m`Y=ZGH&!vr0Ig4Hw=11lmtkcY$M=n5724c|ejigj@v=sDoIqWf zDO{c5qJe$lE0Qj0&v7l0;-HS}`=ugi(Ir!d+xaOrC9ZazhyRe7Lc~uBD-mf&2}Hh> z!9qT#{4`4KkDAXHW&D(Hw2`6Aqs56lN&z}=yF&PHIPj8}_aywrN?q6_(s~kV_z$K? zkG5r{c=)U@rSV^Esk@4C!p2~{q&3QvukvHR>QaA>AxB|X+DE- zFsh7JN!;ymGFc%}kvq;WY&~6ew2#|#Ki3j%#nI2(M7!1bJvz<@{$TVr`Qe*bMoC|^ zDMV#Hd1eZ2f3f27Jx8(XoZKnLQ*~sB8789Dr2Cvs)Q?`E*qz#&9xcLHfjXBMeRZcz zErz-dy{FNy_F(?DC#c-YPxVTlYPo1tA$MB!T4`y=DtZ25-`8Pi42HsSvPi5q6s3Ha z7Pl#=EQtB`kNnLnqFbIwh5q|Oxweu5kMb)U3WaT}?k9EqVI`uT&ex{Ym{98Xi86A{ zFKX2zUNRGIM5^0|qA2tqFDm!ON*V&Oex)>(-8*qZly;q}`Fp|UnSPm;e$SC8pVFzv zmtquMej0&+bWh+f#Gh1Y) zsyuF=OId((iL!NyiO$!lNsw?j;12i{Plw*4l(+iTtXSh}9;FZPAA{5cUX6&28ufcx zQI*msU*PCO3tYj5K-52(FQ2$jIR>HExQ&Ei$+S^W{jf+BQS`U)W!}^Sf7~m6=t+Fq zt8J4gT>Maw;IYPmj3(y0;8^1zreSKOC2}h^O*j=leWNx^Nzp+fzOZ(WI(0_dp!iN! zrl|L;-I33cy7YBV5Y4$d|7g`6^+aEZDrXi&mN_UtO^f1}8(n1H0+a@+a4VfU`j!J+ zoE|2k>tPYi|MCEa1m%N7zFZ9lBYY06NB?s1UKA5@Mj&xGr3A#+IpXP6&J7rqir0PW zi88%V{WUmEr0#R6KDX+sU7U!{#(Qu4TQNn3c2cyEPhE;n{fs2ms#F>=93G%nw6T)} z=9;PDa0mb0Hw;GdyNMVDx7>|2#!`M{DOM9bXBqtsDMg_jaZv3iE>ew2m-dQ4pL?A| zDR23qyBHy&UanO?$J9x^Q7SiBG57MAg-)x4OzrB7IhOLV%ZPyGuds$m+^ zEK-oB0NPoNi&HfFIi64l+MI_3{E}k9rEChQUS$_lFNk|Vz`ut;=hOZC(ir9Uv&c+8 zV$!JQDzOPqRY17f@2p05AjhbG-btC+QJI=odxwk1;|2>KHiWB`c-J2UP=7(Pt6Z5K z(2}(uTJ`WBLaXO?rncj)2wP%&1}~U(CXwQG={W!SL4}CrQqa@P|E7s2=Fm}8%6|t- zA^i8RgW;J$VI+xP7!(^!#4Vi0*4T{>?F$5Lw3Yrw<%i3}!RT7Q@;STIp=#vMk4d3Y zIbFqd7$=a+P*_Toxla9&1TocV9^;qvQmvjykCO`XCg!IXh&Rr!9=%XrLr5Xt@{k^F zH%cp)nCR-dJg8N_ds>x0Hg4QC8Vt7Xp5yHsV+RR82IDy3h#A zH3rzkNzO+8k}Dj2Ijrt|#Qva!y5$ik6i$V|S?v%yRc&Zy6W)&{0x@zlgwmRq{-)XSInxFCLL^= zj=II}3N)6eEcS=WbYYtpb5l2JBofX3)P9XCs?lCe@cQbiRR+0up}N-{lxLy!s+e8Z zs3NYJYH#Oa1Bn%cu}=93KJ7@1t_b8&j`(8XZ)!+GN=jqOE7qu7`3cQden;1m ziV>nLPWOhqF*4PP5ieNuH7Kmo25&evG=FOrjM?~!uXa9eC}wz60qdZPKuoQ=GK=Va zbr@Yk{Ab3!ZZBW?M>X2IH9lFbw&La0sN+B|kyibaA6?a2uZ&9g`}o+;w)9n?oUV$K zs^4Mpvf|%~>DmteD8U=`*m^xZ;OQz5l`H3W1zrJeH= zJz}G{OQVSwi##e%!B1c5G_m%#F8}JNC%a{rGz>IKtsBV2evPgXD+k7u!!2ENS?3BF zNMTa)Hb(y0d>)mZZr7^7q@h1K;g9;Ncy zbz*@GRFI_%mV5Hkjac(~$QLc7_+(*n@_ALSuCn)U;(YnkO0oz%vyvPyoE1qJUONK3 zN0_8YMNo7aW%>IpOydL$HjRdEAg%SRE?ZfxwY>x}NFaExd9I0*ZYMNK>sqI>SN_Vm zraQ*%B}8l#Z)R|3SyQ^U*``T?)D{as1A3n?1qeY)Dn>;t$si{BoS!l4|Jee_STBIg zVq^_D34Sip=0!zuD7GOqqi8fZ%qD~q5j7`A5(ZmZNLTC;G>*D%4#SRu6GTmR8K^dz z(LxigtJGXIkr;yMuqFqsGE`n5B2B9H!o+)fKGvB1_5m$FV(Z0S()I~Ty4q_iu0-dT z&B+g4s$RQdfiU(QsFMjQhePF@baQRlhOs1Ib~%EW16H8Kxaik2lrxWX0a zlP_v1E*VL%r(t_?kpZNZk-={?*lL>5gx`oXyxCsWU^}`fol(2w+LLl(=QBPYl(#~j zc(^0$qO;$v+g|`*4Ptc13yW12yBZP-hX8ndu^GJ@nS|-Nu*qh&gPzhf)3N=pV+x&CP}-q-pBy=)mxEx7jvww);lY(xY!`gtHJsJ)Uq95 z#gBLvGuDm2Z!+V6dfdxFSbrj?kwt-`v2!+rMjbG$-F3E?6KR_(z`7me5?u703(|Tc z)K5{1m99gi=YnJkX(JhVSs&?K9kNo`i#z*Ld-I!1RQD=sKxbn7p@ErOHgoa9+POOF zf997BY6nR%0%4xnPs7w-HuKAnu@^_JWyQkK9by@;-Vl*U7v!Ai5+3RyI~gX=_bcuQ8eo)MpwW&dE#|o+HdaIf!1Inw4F&<6y$!InCvm3 zXA>6sB>-Z#VHPg%dE1~NDJPdKB2PghTisfWxLz#y3=7&cCiiY=)R|tgz%2_dZP%pJ zu-mQJ*wSikEw(W{4AxoIn7wNyD2~Z4-}nRhbk zloX0}S~z4(!JAO1?aV;OCu^&#+S|z^G(LiJKt*s4LL>GK*a-e3+hD3jf^1t9U+W}y}j^C($(s9fMCWc3h(Xt!67uDs>jnBINjO%;ve6*{C| z!AQe~PBvqD*6@A~s|Ia|7ue8>Ht8caG^0(W;=6L{igIc=LI*6oHgM1vJF_SO6@DNb zYO*5l^!V0v^05G%yB>=-O?P(?p?F^)Mogipoj*^mGGPZM=WEaodI(QL`>&PL(@`*J z6hC2uK~o!#pg2XU#rj1vZi!Rk% zc$OXO@*C=A*WS*>F=#H-$QGz__lX`0_bqHGPRCjLTqf%o)LBrR23d1D3#o_EWxqUi z@N4ZwC~{5%$63QgVKo<}NQYKPJlD1*g${vva|}UjES3PGt}I$vwY8B8#$?~%5Xvb@ zN?O%Q+4(PTupC@kL02(sM=czXL8 z#<&y#!X~Bw8B=kPsspx`zRx=EnFU;Q0XWlD$pM>$+*6)9$gWA53BOfa#m7>O{dHiN zIG9eIE(^vuF{c<;<6s`nJ9asUPoDyh^_{=9p5xv)&K=d1?{bf18SIJ7ika*;yFd6^1C8L;E$ax9h zd$xaCP(fn6qfwPb&5)r3V`INS-`%#XaSwps73B8aZ+j-&3R&t%V3|M3S4}7fZ}rl! zcX<&`RjotCMrvc=yg}Lwc(Rr;2djuwe&4`Le+91ej{*eM znCGIk9zN;TJ)^=7lERzL>e6wlySsRy)}HTL=m{7wA0)Xnipd%Vs+a>T=wbKeBHxk7 z5;3~WGqx?1HaQz>YJj&lyjV}kVqx=051Dn4oyoLB^2%zbjmLZm3gigt!jXi;t*VPV zAq+k0E83A%DPbN9jrH;8Fg^D|ec1!E={aANh-a_$^*K(^Xrdr}&u<1zZ8yp7IWnA2 z&?gL(Q&#X*^KAji%=cc`NJ|4Ep61Ak24p+P@D#6mLsk;85R1S*Q7m~;B{Yl^0)Eay zL%z;}kJ}^P79_iD&{Ao?2FU7|Uwe9;K})?bPA6i>iO?A!P+R29ghPa2t^0eHaJlHI zwN{LtUOneC7;Cn1og1+{F=yIM3DIO}U;t<(or%Dj$jT5;`m!`M#(OrUM&gsobd5yNTDPTw^QgAM<{fMdEfDL&gcux#ExRDl8f!Fjm@sL4w=^&ec>Ny)x`#jRc2+SGj`A}bAi0TV`(A<8yK5w4rHEWpOkv7{Mo=$6PjD()NvpyVICYw;O zS@x_7`|;DA6*1oD8yv)VUn1BIC_snxgwfN$uyk-B_&FEP084kCZKt}Jz1EgpilZd$ zk})7817+DR=czAu%9}-G+pWDJMR+r&Ale24Ylq?#pkqYVpV-{|U5yQQRv|#&2D~tT z7Y10z0TUZ-I7qppY7Zh>nz0y-Tgx(z#X)Q?=BH@HII`o#yM9#MzD=X_h^;m$gcaiL z2$+=saT2ifvL6%UP70&5PUt!ak%LYS^0voUZSY2;5gs^HXvw(@d+Uar&2Vwyn)Kog z|HKi+<&-d^Xg0uhiOXJi&MKgNOKAs;vw-y^pq5pLK#-(OI+Pjc2)sH0DQI|&4@PbJ2xE=|k{!W6*K586hM&j52iWfov%tD+&3#&k;FE{JF zk~D>&wN?lWEIq;`RiuZ|W3b%N8IA{K@iHM@$A{|?b<7Z7E5lN>Qz{Ft!qQyS3W@+T zWP#ZfBs+yrc~+7;!Re)n--vW>=jJ|{TlVYBDt1UhV#G^u7VgRN1&?JF;=vFnwqSOP zN4v#NR(_z>gTh%E?ZGah$4GLx>;ah`^>4Zn!ZZN2!YBz0!s~BXXpn$)6LC6fQET_I znvX0-R#%b=+Dkb@N(L7ft%CzZE~w{X#OVvyf(wgA8zsXn4U<$a>%tzE@MWg>BdAjd z-4nKIE3VKCe$k5ZlJG`^!dRDQex-@@BcG{qMFN2=VgT+c_Gn{GlM*K7NQ$r0Z3tZl z6P2;Ej7dAQAR%A~p-#%YUx<4tJBiiJ+4mBO!nsdkqhA6c;8q4O>sBKxA4ny@y26jl zOv41|`#x#pIQxRJv)=hl%3r_8tpkv_aYJKu z9~>tEOLe}8-3Q5K>>dcW!~me4Ap#)lpKzuJVA&W0nD}ZA^95xwtHlmy#hg5;Qww~> zdCXZNL8q}dZM7Hi=JL*3EFf#OC2^W|!QEE8Ohb^!+lUt8Q%s2rEU_ggMg23$Jr$hA zyJ}&lY>Bi^BD#v&DY9Dh`z~4*Aq)B}Qh^JQ*ud^GFGE*qcu8_}&4UmHgwj0^<}7|Z z;L@uJ0Q06EfE+$}ao{eQQSo5tQzlMS4_jlh@(=`cvmbQ_)I4C_1@UaqMP91f^?JaI zZKK?fSfbqn#c9wn@sD9v*%H8QN;onz4c_l`bxSM`V%FshJKMDHUk7mFDmDym`|Cu+abJBFtd9TX-}8t8m8q>@C3t3<1U z$;+NsclSK$F6P&I^UJ513(+*TuE|J1&Ok7o1KPc2s56t*LQ4I%)XgT4RzuXBwC=_dE zdd@V>Fsi3Ys6Rb88O6IOkfCcZ#9g$KouO-7ymrL6-@rEF^&HW7-dBmE-)1k}oerWF zJ+5(l9_t)TWd}s*sF#H|QU@Sql=(} z3R`K`DI_*uD=U<(7JGdyMw1N8%(eZ9EX?%5V+7p@2|eRHCjtq24ol@YKj`* zCgD!8*9B**WCOO4&Iymev3PFrfef2+KTqyi{%*Pg4|z(vT}aTxFsI)H^Ue zpJ@~o59=O;T+b|aJjjX*@=8ryn(12)dr%gvYTF2u;Sr7C%NjTy`8RF)=C3|D&IUVs zNs6K!vMoif=wvEV!hAA_+p6Xn6vJM`!xG*}Jc3(kxB|pJ#e*!npg2(@bYk0a!aH2R z~x1CJsa}ojlJ>IpEeFi0?M9?``+!WcNPS{fCtPOG z-vB~pqdFN%_6{9Jmnx)-qrhBD#B{{5Cq8p{Y3UU-Nkn-c*#|p#j81(r;E{`C3+$b< z)|QQ9OAT^h>Hw}XilWtpGzqNLU?Y57hwfE&XbzkrrvKZa-8B&%R~iXaY>V3!|r;qAUc9t5B`4Uz_hz+jap z(vGXUX$x7Bb2drvau{Fr8zy?i;M|MCRGpc~BYr6qnqgMrG@*fZH(^t&&^U+z&I{|q zPgls9ZZlby#%Y;rguhs0tc-W1a?@CLYg;TzXBn-Q8zl;gc0*#Q!F;CUwUK8(GTtKb zU^mrfvA!At(3n1ipsAy;dgC1kRiY%G67(13pxe)ojYBUSSsAd*lWV=`QdlsG&TLGF z(E^13@j>FoR-<$ZTq8)qY8YvJ8>wj^mc}%>E7n&d@#{rIG?_jsBY^`T0B5QqHYRAXVv|Du&OwSuH}SxX zg9f#zu_nWWm#}AN)nY}2_NLRjU>BTd1{u*a5eb|aL$K#b4cBEK+dJoI0aS*Oc2g_Vu;Cc27E{t=E^fsYt?qNL}b?$0!V=D$vykmZae zehOGtHAu1dwWCdaJ(e82S7@{N>$*@=t6eOTFf>^&#h$eIptQ9C39Hf_n&1sW4KiY)E|{!P0>FFX>tByw363qGzFk6Osd6y&)S z1eFa55TnYu#LBnE!l{JgYt2+%dtpqnNpkgX2-UkbG8=;Zlt^%5wnTzZV7Rp;znoV~ z0!nmPvW&DpZm6(*e%4;6<~|c0TV}vjWuE{$%h5!FcS0dqu^bUeK#|Hwz!D}yiPSzQ zWd}V=a*%7?b1-nC1M74%vIK;AvPVdklZ496rO9E3nVp8J^;RkYsAr;LoTYrSyk`C7 zB+Pe>mi$tn!BW%h;orm!3#&sK|Qt{IaD=^boTH@S#5!C+{&XTDKuCN(j!-0d3OpnxCLn zPY&i8?1eykmzzqsB!>3RYiL#wT=*vCplxX~CGMLdl2RsGRjw~F(X_y95CBUcB%=0> zFx~>W*tJFScIeqey3r+<2Lcpk*n{9+&YNZcqRqpL>)8tr?wB&`3=P;2Jo@=Bvd6O00sRVmc+Nr?pJI&-Bu#%v+ zk>gm&ljR5<+xZ+6s=x}R@RB1=aptL9@mZ-3C>EAGqc{bjUi}4dI_m!x6$Hb;BjH_J)?N1IAgvIl2xw0X(h; zxPmLt!s4x;w2WH%r8(a(sU*E8%|TqlLYI%!YO*^C8|jf3c*=#z?$_3U(IjP)N|V zy^G4Fr=f~!+?(w3oa1x8L2}1pZ66e;L8qO76?Os|!A{o%avvNNO$Y?L3OpUkchg{G zvJ}c4B1#Ja(f)h2|n-OaQvfy(0~z>dOoRN@t$ z$jrOC2RP}ur^o9U(@yJ6n zrcj7=*ghIU({=u($IH>WI@dIMzKXA}#3DNFCbhB4SAVdoud~)gFNZ2CO~^8}pJ$sj zaRwa=zCxSC7*DHekQDi7J*oh5`Qj(Cpjbh18suDsBocaIl<1gdtJRE?bq7#vKmd?p zQm>L!3K)jkdXN%m?R0I^7fs}*W_BvOU*Is% z>Cq*PEL~ui$}GBRO06zdb3wd+nq|t)1vt=!Ec%M0)7F zmS~Y>%_NX_)x=cUAsb85}jT344)2x40=Iz1y1 zoOjeG^UE{sPJ4Z&vli=(FI>bmve0$68SqT1TIIN@OI>1>>1L#eaaBD+?_hMXO03pZ z0c<%DXQxZfg%*j|VmSgw_BjHHQxHKOB9!&ArGQ9Ng%D~6SpYKaBSAux)^R-BL%OJS zpu}4R5{zEz@zli%N_w^_48*Snoi~YfdD8|&08CN3n#GBwVkeGDwA4#Z!o(4E?Cx-t z_^bTjeLZ=_x>qY5H1X^90Y1YG*pI#-?RGX+6Ub+Qjw2uZYWnB^-i06zxaLR1_bEr9 z9_vlgcN`nLd+j+&tC%nAuoe4puU;SA^TNxvAg(X=44`7Mzgl4Lhq1A`0Sj5WlmZF1 zwOAIm%XJn-k&K)V6LtZdb*@ydR&bg4<`y~L$)|k1)LI{S!jG*>V2?{K9=W2r{JnkL z5youF-Y4z272EdBvQ+PvB1dr5aTx=bZAd9Sir_j!FLSs#KD@NlyU;sJgF44YUj+;3p4%It|2}XWHGYyh-rxT}Fu)sBY9?2b!@Sk`VEm zOdZw>3z21GEe-4_Qb`ycJhAwhX|`j?Jh~$esia=iJj0|FP7vKC5`dNF945Tf(gV=~ ztR(>p)|IXRmeeBLaW;hvfuJSqLST1zq zxdwPMwkj5K@6ljCJGQNws9?3MMP}l;2vP*z_QJ=bo~VzpsSJ}N-4bciL-lpC-J!Bl zcR3DQYhVS4g`;&u68on5)6NHig`>t2cN`&zENqE9oq$Q|X9;6GzLlCb<&L-Z5yUnSIa_tJ`6C^e+0?x*KP~3vMD# zz^v@yDklXR5d}IuNE*^rkf-fY5Um`N3Mhmy6&~JV6lewAvU6po*mtsWd$7m_JDN>S z>YCM#Wg59a+SFt1L!B91a8NA@=iuop0Ml+{&If}FP? zd~gxDiPQGDAj2<2m-t>zjq!z?6w5x1pdX(jz*Q#(zy6bmKg58UP@G3(by5|M#vUy9SYbtfN0dPs@^%K zq>9FQUkz+%;%Tw)ONa(7w1Xz@e4dQU#0#iwjK#WARA6uiy@zPRMJ>8@poPe_BeQWH ztLtFLlcq*QlZ1e-4arf_qituH1NrgL5^f(JEV14+XFCOw63K4c1C#v(;H4Gj7A!ZY z(Kw8@BcN3p9)RX!>e@0ZQFH*72BHKzQF;ovk_NDB&_U*ogd4W2A~PZGm%#ges+HMV zCLA9+uF^k)Y@z)#(1P!uywW$Nmj;pXf6D`)Owh#;y?gJkvjb&v=8j}JFBvb#5}hQ% z^VB>d$qVOVy-z5tgZM)alyLv}{94pq_iI`8+S{SaQ`r(LrXyWmlvWlSA;q3emF%J# zSz49=Z!FKDpRHbEHo#8d&jE_^CD3FFAd?u2Rcit5Jr95l_oAp>N$)@^j9cr{R>}cn zV>mPyqZp)Fr(+;uyT@TXb?u`<>yYq#QS0h6s^Lgb^px(Al|vf^^mpsnnP(eY4iBn8e1CcGOQ?x z!i*F(X6*(1tO4NFW(*Uk!9pAC)OO=^RI6V=#Hm1*uxo57rt>3c3#FiLr_frBf_0BGG3st5O<$L@Yuzw{Zs3SBpR7Y|%5#?}q463sxe zOtZWJ6)nj4JiW%TmD;7*=J_UsCGeh8fp zxVD!mTeN9vTO@8?RWXKs^h6s*L617{sRCd4&3cBev(1l#qn)4YpaFoI%ky+b)>xvb zDzsrYjV-7p0rG_}QZ3Zz&cvr+4zXm*k9%R1UM5wth}33l>s-*YkpxJZO0hVIQEfGp z3w|+jW)wDKpCmy^Gd)E_5MtyG0TTG57FUur%xIxUj>Kt?jRA;*SL?|c6ro6FBVe!5 zQ+3ONDCn?{hkU$khv+2Pxc&PPJrm!)S)3d~07q(VowIbcN?_Tj7hOvXbvhDkh|Wc# zybrpDrmm>*5BPgfJ<#TZ8ZK-($kWO=OM;$v)cSm{6G^I;}^h zt)38xR9%J~5y|p=J9?qE9%M;F>;6k~@eJO}c7YRSAhcOzTJ1Uv@`1yeJXaCM3kWjznf7;z8T>^Mj8d0D;aD=sLKV0+1s*QgY9B?U=f$p7N0!ca zI~O@P-^RrTG}i?vxknN`p>KgK?5QNr2hF$r7}hKc-#;2*YSx30LXOLY!1H?5lbMtI zq4Ba`5!j-Y%B83wu;Y=O?2$NK{H&5Gg78hjMBxKTMF+mfF@imPue&{&%CvQ_*O>a# z)3_W*_W>lub$}z{0ooJYTHdl5HCRh#nM((Gp}stqQmmOwb(<{i%p|`IAt7w}{gV85 z7B6=Cy%QwW`N8wbUcfBV%Ei6QnW68St%k5>;#i|?m{L;eSwOrCda)C{ zEE+ojwSpMyh|tDLAzeQrl&k9c6da`>A{Pq>nW#%$7F9gr`+p>>Uz?y}6Qqh;opsKP`uKJxk&rwP0mK68 z?Zs^Bdf&LN10K69GjX(Ihqrw~XP1@0r_$K|3O@G+%1wOoHA?V5+s_(%;U_-x$t9&& z)xn1+HRClDMARh(gBYP`tS(O$mjf-(W{RUhu3yfykz622gVG)81S?46s1>`Z;SxvE zA~<(~(PdY^n`FFWQ{uiUOjFpXGtTGuQmu~C2nV1G+rYzjFYrufNPdrd?^48T5F zbwpOsB`G-X(I_a#qXa1PmTfu!%>uU7@a~O&RGMxitBs%PHf3A|$F0$qqO&jmDwQ=! zC(Bfh9v3@R8$-iFj(Eqb^+mLXaxp#qfWzF2`0TY$*M|uS!B|oXruX~UyfUtxuC^wr zFl2Z~ZdgphSz0SSp>8@|=`7)ME%D=BFYJ-@K0uF=yE8rdstqpD`EoPc>7nCr>&1;u zR<=4Mn&SX;Is%V%x)hD^hvcA0mBW4s{Gx^sjNT0~9DCvAZWJx7c4V%L$XTckWLKZ= z){wmffI!i%zy}^jawqmOpk|F?s#>QAnS|0_P5dB-+-b;#IuJ)d$Hzb+dG~Cy?;guS zd1uynpn={q%>SZ>-;i5sS>@zH#THqJuA;=v_bln0PdU;5Lg5z9g0|uCMN}FH3)Rt zzr9Xz7Z=~{o7B?wJ=4Kbo$nTk!+79%b23k&fSy2?mD!Cg8HM}+1L7orWDjfd6yp@~ z1STi!=#9(-n$oRiL%hdn-UNu+qF&`RPXO?1PUXx@Q128zY}t>X$V9_EuNvk6Jk1NE zJ@t~rB5fN}{gKnl7!})jQLC7dQ<<7%Z4I2?BH#Z|$~zEVB{;tT4Ge9@izYA)96p8z1*M2Thi$MKpK_`f0hMlTBO(1e!v)pMwt z;_HdXiH!hAW2F=b%PQ4=T4F6568)#dP$JEt4nHn(pYlxrx_IUEJpyRtp`CK*;1X7j zHr5p6vlO^Ik?tapXGh8Xr|((_30!P!E_U&z7hYPnL2;|9Z_LZZIkw~gP*2|mM(`+% zN-tBG4i5FSco`;>IFaTqap9=1hg4Wtt-qVY}aP6pxj&lTeJsF33_E3f5c@ z71+3nK8FUNVXsM!rfm?J$_iD6A=oa@OOhTtSwK^^b1n9}OG|rIuj#h#QeYm#N~2qF z=xzp%dY3gYV3i-dVqsJ-(E>nwx2M;c|F5lw3dm6Li04-%bgbKKz~hLn9{gauz#V}n zVfDgeVT~U(SaBG5A!@Xv7(TdNn^0ov+oYH_|{_h-40oR5CJ6k`VVxh_Zk(3Mp6W zUST^V2Y!|W*5U^`)==XHc0Jfo2+=CtK_-XYT@DC4 zE>7U-N&w1VTZUu|>6riwXBti58kB7fsA?Wuq4e1XKqD)0y#rL_ISYUpj&cASM^UUx z3}lV$CR9tMEzm}lTB4&2bWl!H&}k^d&1K9*?91qBahxn@{TT-NBP z(B8$%-)m3^nG4PsSZKyg(bkD|0$fYPL(6l8(r_z3r7dT%w2dx%?G_iFk!yDdVcZqM z&IK`RfE(H7J71rXtLbRF2O;0}4#p$;Wn2vVdb6jvSRzN;F;cG@Me4;yS+)g?VlN1F0>q_H`e+jMWWMm2sV0<|ttmb=)jYTr`H) zakN_VU6)gICMrv##j6@oj?BdgVhUJ|B!rkO5*a8Y>FU)c(9+WrPF58)R@8|GRa?L?(v+Yvw$Jj+r&n zHg#i)UosDw*Nu7ogy}%alsRf%h4i-Rna3c;P<*3no-_vx=RQCw5#?+F{7dE#K&Q;f zpbpOeNy)zekXNAAi0X~ZoSCIJ4?}ux<|vfkg}S78pgbM?a~(D*|lxj zMcH%LE_(+02^jTMxrve$l%%cbK)eCZI)vKLdrg3@!TUApJ%mluTm4d}sH7&v z@f(`vi&PW5b@(~RfoskiP|?9_5JPX+9o~DwcbJ^0p|)1uXXyJj0Gb zeRcZgF7(&A(*T)=E{Lf6yEHZN8Bxx#xea&|ho>!F ziNnMLAIZS`^>iR53WnzafX3!!h^@l^Ism<(rFEGSv?%%vK#=F4zrf;B9mAIJGc*|3Ua;_z{|lT|qrZXffa-3G+9pwgV=&@s$I# z&SDyGmt_%Vz$$fR9a7uUG{zY*brp7IT^h<&Oi|7T<+wn@%Bu*w-~yG}lu6K~0SmEW zZvMmgu=6q{;M3~Y`ZC0i_zf4NgAtpw;mzLlw|V1#x%o!p%s)b1=jJoMp-2py!d=b? zA7}J3%~$;px1C^Fb5uq+1USE5l>uzi=SEOQjnZ`mwFTuU`oOYs4`NGewBmRk`zX=x z7C{GR5dk#?v2w>>|J&U9HnfzHCYJD9uo<2(pEc&pLTbe}6M2)Rb33>db#MJY=GwcI zT`D5cx@<2^*(h$P{1n2)! zSP3_`?cpB8Td<-(UN=qJr+{#HN$0H+Zl?kM+wfQSzB?qbxTHF*z1UmLwZ!%bExLHr zT%uXH>Wy53Fp8T$?hPK*8tr^Op^_vgc?V-6 zY8~c9D)P^`%VHwTqfG435ZbRU9j{wIe`Z@?9hyVaH26(g5sKSqz4yb~W@x@QY46tD zidlH?2y1ui?lkSm^!#h?Cc9OJHC3QB+VXl!CT zS9!jilMh%IG~zx4k&ljzZbc2@U-)Ab&AK(z@n%>(F+9ncvTD&CuZW`_|E1hUm)2Rh zJ%;7$=Exf!=0BLpXSw%6#v!-)I(PgG0oQ17?%YV5wSzadD~XU|Px z1onfrFv2WY0S2@HD<@|Lzl1Aj@I~{IF^_V}y8M3-_PLYr+n_Oc2L68xN?d_oW=_6H z|G#c>qd0a40WB|>TmjHt;bTzZ=MDdUo_-&s-*fcarQbIFF4HfxapLpPKCb_gd6?RS zT%~y-r1yB7l&AbnsBs>?K8e7av_CsGTq%1GXWVrx(RYZ(9kK^n~$?X2yl z>@%J~t45S=Bs5Gn!8|_ZM(pfvYFLm>gQdSLy$z+ai$W!K3EA$hU|9Ur#P;}i9*&Yk?lhxnw#2Hqu!i;GMxeGJl z$B@%7`;!plJk0G`P~=9;#(&%$1%qh6PRvlv`=I29C?hrPZ4d{6ZLASuL{x^;ahX_+ z2JGWKc-!sKk3;AbP1aY5W>}+X%1o!zV;{7g&bu^j5|7!{o!j`=yCWrh9#r|@I_-44 zZl;81WtFJY7sj@7_g?=|70kc8Uiayo)f?&;tr$0?q`=oHHW@u|Da>I<3uJM{lOSmfo^{$CoXz~B6&Ut_+p0=!h<`Y;^*A&|($`bmPHG;BM<8{u=XMf5A-S`uP^(_}lX4&iOp&Z{{R zw)T>7x)zvPyJTy1e^D`z|J5@I;Z`ggxN6$NHEv$|Rn}}SemLU4nQMr>nAK>}Tt>Wo zqhI9+pdG)ee&cvHT(zD4ICgEfxQ4A5STuYrRptXiN2Em}jt$!F4swd{huRwTlPK^w zGUtO>1F=eOSMws9-wJoC>yd6u?~*on!5b^oG^$9TD>Gq=v^-s+6WnIS#?2k8i&WES zbM!{*z92LK33!LwlHWYZ7(ODMsMf}WxHI)o83PM4x<+**C@A(#E6nf_a~d$!F=GbD z%n1Bq+!V$jM9|^qRHVQ0Jw|9~B7lS66t-xAeqSX7e|;aBa~# zbNy7`G)xS$Uiq+E>YJ;nwX;JNHK&v4{OW4dFAwV5cqdCW#CB6XQb9E=cJ!-#z_4|f z<_XPZ)F8&0$NDQ;Z9SK1c5#yq(pzck&2z>X(y-ZWF1qm+CtLJT-xlT0KSy|i?JPU6 zMzi=YSKfn(-neLL)>JC_t-jTwiJqh9MS{M3ot$Dgg%zWrtW7l+DOPm%)vzY0PB~p= zNt3>g5LjIjW2m)PN03{a))gC3w2f~hM8=mJmv`T+MaZkg_b;5q6l+$vXleR8IzCanJbu=&1ZOw9FR`B`W)JfhMR zyhh>1=9+-#ZibqB{|k7La5ajUkia zgqi5lNW?T#mHl-2omsfTLaYt5toedLQ{4pBe@_}yJPz+J zLa+LE9(dzcg-)$|6VoHiaTDM-bHpV*_2)-uiXjX4q^QGO^m!^$zMSqd@V8>v06RlXa>}o?q zMbM+S`YgX^TeRyw*qKAftoy~?*5T)BWa56SB&gj;*}m{iab*;6XZMMy0CuP6pN21C zy^tF8U0+Q{jDJMTn+Nx+04VZSu3w89Nt%~$wC)=irTUH5wTsbe-b@|48nwcG@CVPA z7cEg8?z-;SkWvkL(8e)R4cmKsrjq9wc2oL}G z_%MBnBzfHFGw}Bi3DRz~_H-R{7K^_sSi5hn8{bY=cYOoe&-B#knEQ2#JA$va{K@7% z>5Q4;8*3es-WO%?!;VNB$~fYJ4Z(67Z{Jv@AsxZp;pTUiKD+K{g3Ebe5(bNvpFFKOOv9sYYxXu(RIz-o5=W^0=9 z)D_FAG9K&Gi!iNUy4jkuMKkhU&o77qt0$BuQu8;1nehnk^_SR>Hx6-qV4OO^@82hR z5&!?XF)LYu=*J8j2XrkrrhH5&YIAhDir5btRn518H$-$*_!89maX>l!YDFVhJzu99 zVr+x&Da1cK;JEOt)&zAAKHXO{$g{;6Tn9SqqZw#N+8XA~ZSzeDi%N%%Vqe-FdoBk=bd@b@VEeG2|Q zZOr4@&Qx@Oohe?18x^SUDf+#eeqs0qU#H2G9A@+A8Di!x(V}vLr($Y7>mR-aHQbf` z-T~@$oMgG$(Tr4V%K_uW8oo?6DZOSbcg-VJd`B{X-e1hB;W5!zb%WOIu0AMx>2$D} zT&qVy3sApbl1wwdZw}5F)s5o&p=XR_zoO00v%w>P@I#ns7Vr|f})D2+1ru$)Ty>>A0o zdV~GjQF!1Z{iKIvR-Z zAm*q`GcV4W&_RHYGH|PKd8cIgVr%rAm%j*;X7XllqTZ!z*X8Hmb$x3`j8nonC6*oq zbY-VKD6vA!KS^J+Z$&as)r?8qxXA1n<<&;#;`cov^G|bq#+X|b<}2F({-BziKS)OB z51QmD}F<&=P0?g|N7pProh>bY#0_B~_G%qucpOlT5cL_(H zIZqfY4^BEtKz!=sXdWxyHHu&Elu^yiH0>lXM@CtW|1di87D zS0zsBkMF9^!0byO9x!7)Ic17tg*o&nzqZ~CTlxKjYX{?aGwN2qxyz-7Uu4Zpif9sd z1ZGp#!EbYW(#a3vHFAqG>Xhqd%wO;3fa{HHxo%rWacjjCGZ&FhzE`K-a*;Z zbbp#MZjm7!zqBFj>uL7&hvHKVEm-pZel5}F=?rk{ij;?yN6|6>7) z$8=UiApAjUoT7B~tuRGP=VeQt@$$IawtR`cLfejH-qR+_7tk7YR*giNA<<;*pq^Bx zGVECg^Xum4pPgswRnfCW?T_f&K6>f@p1d`DFA+bFQ|LU0M(>s71mUrJX>p+NfMYl* zJDl&4q#v>L1{t2(Ayoc}YrW;=1va(8O0!#i^mf9cH&n{=b~K$~CF%S~HORWc$^Fa;Xi)uanE7yf@O_J=eRzaE*pj~9XybgA{iOMCcLfDB?Tlv><479b zAkNEd;qm<}pmvAE)$wGUN$~o_j&M-(j~TTUbmnI_QQkeF_(b7;P9Q`-&H@ytR(`; z4VWHdUlQYs*mGw-yb?W;V)JwczDoD=PGzL63uBSkxC3-RQs0WLT7r47VhLMhlFjo; zh@OH-vS*>?xgKt3CNB_dKbmAlBf^2Kmi5oAB=FfFk^V2-hzC$7!0jaFf^AiCh6pP2 z(u}Z!p@n9e1-({@S=OB9eusC|hg25x1~YUb`7KBiCr2KL-J|{48)q7pRF+6f})4vM{N_~X?^J7;e+tIWd19Y+jkJ2)8;M+|2p&@3J-GkAZzkj^KpZIzMg`# zyUo3l_Uq;ou;V`tlyGkUkKLNQOfPMU*?gQWx@Y0J0opjB@5Ih9`AC%bB zFet~M*!ykzks$q;q`!8J_pz3{u2IJQQpzQpilI-*^J#e=k>^p#aR}bU=cDjs$fpUi z2ERwCWDXyrxC>*Ax#3eH&oFyKKF>^OJXXjU>NsusUXDGSi2sJhKaJ8EKC#}REy>As zL%ZLk8MY~|k(|Nob(;whvM=cIvHlWMXQu3q-(9ebU8o;)%u$xyE<~wW&N+mUI6q^; zgR&n_ApDL|_h*U{lipeuC>(jRU?(3$!eRw`<={fFz{0IRsYy2s1=wumDc$?@#E{l31gGWW77NeKdz`Axo^QK+l5GPK%G z4*0J3%xu>2U|Yl7PBr-U%-1Ywe@HTjLh#9chvueCat`RcJm?6vN3M4+1T*1Du4|Ui zIctNa0Y9<+X*Of6__g4QNx#kHw)$Q3CG$!Q^!J17j@||J)NZVvQ-md6mHuT77b~nU zBx?{k-w9(Shexk1xCqslu~A~aZXzi+cR(4Rq=()6ytiTFJ9x}E^{CI1Ip>_-sO>!! zq?iR2aGWx%AXnQRPUkt4)(?iIge0PQHklfec!C8OYNxzz(zb2ddau1l=4>9H{qsvt zzZGKF+?Q_b8*8b448PMqD%11`x!};%QC)Az+XBM+cJ9&KsD8l%o`!@)Qa!ucu|?+A z86vFstcK@8o3t-kDS-v@@JU!3C(ZN59GFgs@}9TW;lUdR{Zg-GO=(U}Cm^v2+m$Y% zzqKGT?W;ta_>84Fta_%9dG|%4Nezj)r$%jHn&hC#J~E$sHf(FQ=Hqjg{n@d`$*@Kh z#<8{`cO#|yhn87df(dS68Uzl?QpgmkcPyvuIb1f$QJoH zrkZKB+?f9*rr0FxWFB=QV245YG>fAoo3sbv*f2)T~nNyE@4H;cnm?TkBLf4?!0+(=81+3`@_qke4KQ)y-mipsL_mWuFe+Sm1- zIT*fmjZ?P=oQ$MpS{^!5a~+Xo+%*^E%U}#1VL5n{NM>hpzSBD}H4la5rd8ERh9~#< z?%wc4CL>lB9Zg=gH1ji_vkXTeFFM zb0|wP=G(r7$N5nIl7GpFv znB*B{CSNk4Km@7_$S*u+QyOrpNTl-z}EYVV)!P{myC`Lr`J=Id2ez$#F_ z)-653n15EqEMJw_Z^O$r$JcjZA)GvwNZSdGCoiK*E)Vn3{%@mn7BBWV1~mC`KrpAt zI&h9)XgYoZLdOA-XnUd^WM84pwYkf^qZ?o%#{ouWDobSZCcbXazvs!^rh%{7hXIwPqOL-;%P|wyIP}}%mmWLVCO_fQ{eH;Ki}ECdea?Q{IUyD1 zAxBW}{n=lLh&8;@$sE4koNl`|cV@q%vP$y_XSxzfTax$EBL9|M)?C1`snX1|S-kT+ zeeF4VCw)tX*?$yP)*`g}IT$6Le+z)#(6aRi)Nuw-CfdQyz$SKza$)>5(}#mzdY1 zU7KR|CT{FKuIEvGi%+*rBoCLUbHs-6FZ}{mYa+P;^H#tl9mhig0XOzE%Qj6%LYgv` zW-sD_6EqIgw`08ik5k;gP!GOrf-$ML3MWu{eaVOH_0R9&J4rJ})YbW9D5s4$b;FrxKviD7yvjAE(&Y!X_zKe967*kQ;bOPb8sst^b07}MOI)KgeI zb=YS?l2?9Z)qrA;-M&Nm-Myg%$_%US$=vRryK!a1*AzYve-8pK_ie*Mg z`jW5gH`Ody%@%OiJYce9ak;~DJCv9nYx?@Y^4-xZ&5Z8~1QrLc_dTj*zW+57zE?lh ztAst17HQ;8>UTL(|0YTswg!5K7lhXHkK{R>tAFF8U2)G|pYd7t$=U;C-g$`3I}cp9 zAzRwytS0FWdw7OyuZO#Xll7*J(HzzZO<@n3kTFo>^5ofysYE_>2Jn?5BKJunlYi!> zynJKKM|f+>wOI^uhyPJ`;k>?M`R=n>%tD70mdXJ(f(ekkGuLMn{5u%U#=kj|0`BDg zF*M0m1Mwa?+zYKo+(&$p;#mf9zJ7AmC~oJs4ztMdU)*f_v^~46pWR{P_T6Wvh@QAN zx4WTI`xhCgd$Nx&<50g${X^L8@$|_mrp(o~dMFeLaL?i0zneScpPfk`1IAuBAAF-) z40vaaid-Y^%VZomNZf-rX|#uI}l!8HPf@b$0dXdGV9jiWY4)%i!5MR zF-g-;r+Lrq^_L^|ihrj>EYy@+C@V5!ns)y;pXCLVG^XuuJ{xk|X7EY#B>dh*zn`Js zC+PP8w&#VkpvujgtRoXnT*OM;Z-{qeGi8ozjROXjc}bvu0b+pE!+j6d(FK>>7|e7-%F;HZZ&I<93XgZ@HO*V zpEofj`_0$LsCyxp8R5z1er_OYCasLnV?)`7snCB%_^8rR!xnOLh6V80M{2I$qM6hp zlTm-&SW*3)lY1r2h_gRZm^w^@O7tY<~Y=_)7+cwUK zJa_2&uDR9Iy~`$dYkDgroO&`z%lnF->=m1~c~U7GZn$mJlC54#N&2K#%Pij_BunBJ z7}VeDG~2%9&D^SI2ovzpX=6`^}(FwfLfb{&0$B_pE3T`5PZ>2D3!B* z@HX!X4Sszi4&PmP+U;}8Ha@&@WT)z!w&;G*b~x?Hl=lIAx+OeJ=3fFcMdHu-3|E@m z-ksZ!MdInnME1?kW8PxtbNe6nP%*Piuo)l8Hm!OP>P1ch|37FAG7lOy0(YMMNdR|O zzcPNCh&8-*`(vmRUI>lZ)fwgr_0qH)F^)+vvFaUNR>*@?FB51?Ry}CUu%_Z6|9KKX z&3FW1@}M+-(KP%W_GP-E^sU<{ji8{{zD(cAa4ZQKqq+hFRyD>}K6FHB8YMvX(8e=8DJ0BZz)p~+>nI;D} zjotE~fZ<<#m`zKno88qXzOT}-S#6nLexts^U*oQy-M!mVe+$mOG0DI2giqP8+gk4jd+WCT|ohG!>GU=ORG6}eQ!n|}J3 zZCcQgzx_j&4U=`@RL&Ul-GASF@^AM4*^&Q#^#AF7uCg{bmCu#)MT%_yL1}+w<1ca(SAGny<>RZ|C)Kh2mCN7HLHJGRtl1*P zCJX$mL?wQ1o*lwh_n9KSOV7)S|#~E#(FcESq;rrckb&g;qn3 zN>m<}-pJ>3hiT#Ae7O}{PRllYjGBDq@_zm|jNeSq zTO{|I|67veHEh$?Ul)soYQD1l`!q3d?Ux6NdFYip%q>M&1{?3>Do<3goj-s;<%yzz z5F;QA=Q5|^m|gih?7oe+#|DPr7m9|0t9ckYh#^9#?lY4`p8S>V@58?mzq~n6x%_t} z{9`PE36iPA6>bjLtTe442g5;J-nfbx=qi<{&Pa^2FssB^a!& zwaVtV5wBKn8yLymVTMMa1MkR{Mhf`2BM%L#!XG{h@HYs5CHNbGzdi6bMqTua0ccz^ ze@8BVM;=P4G$9T}6`?4o4H~uyQOxsDVF<>tDC78GaintPVVZpKkrUgCm5pysRyMxo zPhS3oo`K|{DTB$k!SJSXlpq1SXyXH{XC1Nq)*Q@W4CeCiJCZL~W`~OfD5r#fS}o$Y z^2F9p@wHi*B(vP{8z1b!IVSl3gOTx^p)jxMjSrxVtt%A3FG4gzQHBa@^W<;m;cpgC@Vkd-Oc@kw(&uQVqg^T#v211Myz}?UoC%RJkRaABPUIw1RS%0 z5l9~!&*diXu+4>z+h=ed2_6MwN;vbcP#1ocKJTj--kik62ERoZ z<|~Ni%76=CDnXCI%*vI@<&k2(44?22AO$8d-zvitVN66lO*7}9?sIuWUF9+mUXW|-ESb2iV=i@Yv4@B^4;fQT@L zyESHEDnm09)Y2aM<}lO%51iIq2#&z^eI;7^>rg+8>@ZA<%H?LY1p98GviZE!_R->? zOybS6GHvNGS%9f8p^|0*v@$seIC%uB*?cKCSeh#2V11QJNL4~$1h+>jqx^+pg_pOI zUs?wL+duK;aX$?|L}TU3L#0YHY>d8Lg7nEj{DtAVI-AGr&|&ys+U3eD(kQeH%V7hk z>!4O9&w~2PVFQp39VuD55kGPezOjgXoM*HPp<;0W=IP`h(m}8z4VEZYqCUXRsWkUM zj)~1$Wix_*FuP%FVdL5SQ5i55Y)K=yKkYRGkO-R+5D%|IW*AC|!?5Aj4%A&4s5_{z zvbj=1EQUk={rx~FNJDt)P_PVTdf;J*a;Q>7YzOt>FM+<#6S4$rr&L0mxcSNh#ZjmO z(8?e2Zm{u|mW51!FapFHNSN|K(dEkaE%L7kh^VPke}t)|kzvA=82T73YbrCN`P4*g z%jGL$Qzh8j=s$?*MC>p+$`cUu3Y{mZGis)2V(2c7YEs#Z5D#aSPEz#63vNhAA#NAjl0W}P|SUm zHy*I*6C3ZBv^Lyus-sgmiX*F6q|hCP=u3EkA>ROqV0X;6zc^G4#}#U!C0)gz(qeH> z@J)FQz(4;xDZsPU#TX6w`MKHUFk?B)d3SLrtkSE>7J+-$_5jU-hX!!p*J=0jK_vEI z*G9IY`D?I}uAX4Z9hoipRAT0SEU#>hmox)Sl@e{FrJ@-?in|Oe6GjfE43;;E-NBd? z7%rTcC7ewd0z`qN8F1J1KDF&~55rsIu#%92kWG0D&^Bz!`NVcSF`mnX8}+E>pV0O5$uP?YBoRa4!ImDEK1094s{aWIHi z%f+F|D(5X#m7%JRQYjOg)yf-B(TIMBSfoD$771BGh?WUu{NYC-_C`Y}B|rs(5*(~- zes|OZmvHHS7XqVR2EsGng{e`&*$TBu+TBp=s246G-QNPF475pQ^Lx_wm1yE>0|^b{ z+YJ5|3uS0nv5+qzE5G@Nv|VF+@5{qJJb=%M&4==Pi-U~7?&I-B*6qqHQK|Q#G-dM# zC<{XhbEr6goHTRTo6i?1T4@5_f>!fv9_0B;jk5HMJaKC&mB)fKVzM6wA|YR;racd< z0E@>$#(_WpEJ7O&Oey4;iRI$JcO-D-DGXq9-`IdPRu~x{85z-OCA{_Kz^IY^4H$Q( z2j5199$SR0JQ0;|Q>M2$pHAFo?gX5^{l3=t4E(F|H@!pTR8<@GjLkyZ9KS+&c-tF* z?}MrTLzG;WNPP6hb_u36t$K=nnSQ^zuQ=#-C?x1`*s!631K#)@VMm#VuU4m!#CYTD zWlM5w{z#g#g8w$&A|y_YTq$dFSG2hp*!)v`Pq6r(!n$T^4hdHzjF3bwmy1Q}tSc}V zaCb9<#3W5z{=v9V5pR4QlgedazF>FxI=sSYPzWLk)9ZziB9bd*{D0H{0-w12!^+w5 z5(?^wD<~mLRfKPjkgD1Eoqfd;k!S$7lpSnPg#zO0^0+LI6-^?Hxk6kTP;dECp)`bS z#&~H0*gU^kNKgUydlnbp#vj2yAS+79#gcT8`?G{a8T@FZ2Ft^+?x5X}FogY5IlB+a zr0@00g%2qYiwpwjmOLS67N(8h??;O~h!7l_*!+Wu&97IhnxmvC8u(oed>!x;_Q)i{ z;E&knA!rq>aTu}9--RrNVy-X>BYU88@CV{Ua30P(8u3?n*Z*D@U zL}L2N<{txy(DZP15AfidKu^Do5mFeSED#Xy)jQ)+`K|4 z`|k%I%86un>k)$dBd)8hN4VU79Hp8kt5`A0>HmV{@HqqwV*IZle(Tg=PLgmZBUt6~ zUz0o>XjJ0PH-F6EfHW%OA?m+XWBo1iX3!7arZ9;cmEOwCqJ<@fSQKMg32L& zS*A7qOF}&Fp_J|cCBLwHx31)Xc^?KAV5?Np?OjzPvb3;eC25%@rAk!p7A|!l8;ber z#N`JDVcElEqAz{N3fuByj=q99O(bAXHtNegAfb?!qJWS^TjQ1WQ2;nV$G?P_(#^Dgdf$v@-Ve(`dDTgwwO<3Nrhx`oCYUOM`i-IIIK$+>Zzb7`2R@lY| zNOo+^mCLFlDk1(e22jKx>~6q4zwr}flM(e7=sj4I`6_HyM5S$imD#rl$RHaUM2$`f zh)q$(ZGRR1l|)YnA%#-DGH`>?_z^^gB0j`+5fQhw4&PVBwF_u&vN|EsF?bcRniTbp zl!=12?XM2wu8IE@=)*n_AB4}7Ws&a#|BXt;=aJps{(aPj?IW2F;ma!KJv%b7bpdep z2x`>IBbBq2;+~nJKfO=!?*NVcLUwK$0 z1i%+vdAOuNmO*??6zG(E3kpSkY2T{6@t@&=B-(hXq?$P|)lk+6#z~$YoAhOXBn$bv+MA)Lr)GQNyK!AOVcVVI)aeiGrQD$`swkkhV+Kbp> zA1Yu52sA#F0OW^8CK0)WKpPr?X{cf7knKaz7sJMI$l&gPd7dhcj*Liml_13OdHbSt zlNWahKOh0qc=DC;6Py(=Xm8z(KTrUckDTJy>NZxUC z{hlIV4cMGTB?5!@72foLPeVl#%LZ_u3ndbjRuMy&RN0IY1X;ME-9V)ACa(PLM@VA$ zCJ|sOxbGnuLU_A6ag`Xtjc*rePF8`&%;oHyL=I^jO{OG z?SDvVN{GtEoQ$`i5wKCgBVYPRamcbBkZ#E&2mnP+-2nu`H<0m!zO1a%ryRNy(9Gr` zCLd@QLM4$GB+B_vd1CX^t5Yxu-^mfxfHM@@2)Ut|lU1ebzJu-GK3PR;i0$Vg4*zhogtsBQzR$qU{yhxR zS0GOQ&ID=aws1;wjo%&_v2~1vHBt;!t5D=zlSOWY5HXDLxC1Ud-W^p6~tDBgD<225@d3FTaD)ulq1+F|?6s0V^{RkINC1 zFABCON=DYUVRmlt9l5)UCHuykkOM*``+7-$MfZf3-jN#%USS2DjaKMmUt)~OU&eB7 zn`0m5(7i~qlu$^xUP9Sj0j<{%3!W_DN&^z5j8cy+9B(28&JIzujQjTF;0T~~)Yz3O zfoPcx2LO8wBDXv;GO_(qp_m)S-D?;yQ@%Vo2wT_4DAAK6^gD`lZbVf_Bcl64_Q(cc z$J+i&_%|jp;1Zx~?i~ydjw4e%!Q?q0;j3TZe?uH6rSliYM1RY2yQzP;vwbX_8LM9MQ9S4*dUf1MrCjrsKg%u>kV7Nk0!SMY+~y#hR_IQ>jx~J zg#e-URhB0Fkgegie!xqIg2WX3kT#MZkrsPAk1~*}s~CcGlnrki6v-9{a^+#nyZ!oJ zq=ZU%5-MeYT`Rz3AWpnio*K+Kg==Z77|7L%Eam_@r?NJRjKx9zM^xm& zQK)A77AP5hs0pa_ED>G2eG6?j@FYABVEDTi*tM&#LBMKKH&;A`r#?lz=d#g;amz=j zHf`OA|4Xt~sDt|cdHRh;-It7D7R}ePj~g}m8-uqPKGrs_$RlO_ETbM!Pl`8|DVdeu8 z-uQB5NfBqQ*lL$Gp6@F$wPtKU+C zQm6?-dxyf5fgxx(FjY`5?yt=Xv4gNRaEbfie?UM?&;L-K2xjZ2^--+(>RVcg7vkbM z{r4=CLxrKrI@xJTt~?7&@N-a{BjOVygwEC%ppl!C+;Fsf^wra4QCgOLWmef&W|c*m zRaUxbK+C;b=!Na?ldhKx*uHNq2x+l=p9D{mqUNGlM&5Fmn*+D_aFNdq>_xTAfP<@D zDn)L~umz$=Rs!yEh6bAS7~9`JR2*hgInwU1jEJl#tq~>syZQ&TYh#f3Kh9s$+$Bv# zR0^nnuL`2JzlHyr+BM(OH@?Me7>c7-;h)N=R#ir|O0uif+lm8TE4;R`qLR8spnzY=%^|O{IoZnlw_Vq+pw;!BVuANQSsYbH-F+`V zm3`MY;a_?o-hpl#f zs)%djJsvJZ0_r1|NG@(s^k!`(5T6--YVY|?qbm55q}eV$3?u%&=%H5 zj2AgnWeBZb6rD9kV0eLRCS9=%(EBpg-Y2?p>$|K%_$~@u(Kc2z?>GYQqfu`OZK?o< zh7kEG(Rod^Rc;ndp^7XwnITM76t!=^kB3XHh&>^`ZGb>VwJ;e~0KuOhE3vG~03o$B zapgWFatjkz9@+<3VB+e3n1o;n110z?LQ$3Nub}`0^^?f){yE8AaT6UPs|jYPV$gV>lQ7|LB>{5mqwW3b-yypZ$((|j)+D_aoBY2i z&mYS3JN&%*K9)j~1(E|`1DROZ`bT1tw$aKwPdv(%+2QdV3}AkoI8mS`nTRjng3NBT z-!uP5WiL$EDiEswL6!O3>jvf%CiC19y5pv@Dl!&ZYh>* z3Z;@!R53qHX0KO%TxG`L%8x4>e?*a*d$6 zfEOW6%YQ(`UDsJX}wRf)c{wrns-nfE!1pO3~0KVcp6 zL4v+B${H86L3;ZZST~pdARij-AtSjt3`2v@cY%yTi=}r_&&*azO`N&oBO_z1}Gl4L$$)C=EE zB7HPiLUK@4f|3jALf$mg(rF)08=^^DYU$MSat_de4c>&`}MTz!vGCJieg z%h6)N&h(;SJ4S!}d|$m3n@#A0n-<}vhe&5^w({2Cjrw4lX z-gEZ<{udAb-d(@-%+Ejhi-5O>&ZKve{jB zH-`8k2?4FumU?Zgt+smmP^;cQTCI9(TYIa$*!rZr!ZRcxBoH9H5rEI0%ZsH@{Yv&FTvcB z_@g?OCioi3CQ%KMP6eFi34-}{p+;CD6bQw_jgY?^ z6ZLKRp?V)R9T&^@P%WV!QZ-3mSxp{@+%e;25MDCyG8iuwybQt1FuV-M%Vl^OftOKu zxg0O|Lh8w5h5H5LWPz{6&P+=B4w%&o+-X4( zsRBqeRC3I~v=HuxB zta4*(q%n?sB7)W&EXKGn!Uu5}v;KX~Uuf)+kpfcp9=gWi z#fDiCk%oq$7&i#O6^1GE;umi3NQMytme7;!H82RIjCS^EN)P(>)fZwMgyS222Ht z_27pP`v*_r1*Q1G^Bh*{Or%N&U_ks>2dq7Vmy@Y{GcgLADLqBr+ldk&v78dK)KO)C zOk77*8Hyovz*6L0LhyiCPA(*OUA`1yeTH#>>|_z`^FlQM_Mq3jD0(~F{GSU4fJc>*?`?L%cA8nU|t}^p=pU|Jd zCtdQBl_m+^wUqHQw4s#sQqoeSeg_KBICF|>Y99S;eCi!5L(79x_#IXlmIrgwQlzSRqAyHj}!cu=2{Wi!!<#Avcp=7hnR~(pC-nd3e zHzA|5LsN7{V^i7uKSd~O{K^{=32c3+tkEE2T8cDciG;q(83Vl`fjq_tsTc?R_O~08na>zQn%$UWAlE>9Qa{Oe zjIqBxDcQi?Y0{K&6)xq@rw&*F(P5{B;58OIBd=hLkWQ%;Af@!Iz_N@8Dll7|L}UTc zJHXnHoJ1)1muQBt{FTv}{p|++Y>dD%QUI=jc4I%ucZ`8$r-0mppgjma8DnIbDv&Y- z9Sut+rMoOmNJ2NbC@1$1up8J|6&@pDwi}G{%@_fwHD;PYaj@JDqAv)R#r>eGVOgBY z$TSb444BQ5BGI36#||?YXibsb7AITbzZP+12o}&1&^gr8T{DLk>;90gPvY`*IyPuD z9+G0AZT%M977nSSb1^%12+!{^Ta9@7i>$}s8pvNEopzIedI69&K_&D1 zd*mR<6|;~Myg{MD8Ua-UWKivsCcYklHaVcGO~Xp{85x;?j1iX<8jvJhUkF5Cm^Edf z2nYtgPhVbz(C`v@l60{N89@ zf%+jB$z>wBfL|O?#s_BT_2c|P!wPt7ZSEiewA~ewjtFUUWT6KKLQz2D&;^j7fc-DJ zn(;w?x*&@aZsIp0N2D`@2yiY~$PFsG1^8g?NqVsMB*rm^k#?56=!awqf6S0B6DA6t zOWT=9h*Fu$LBgbb0&01fz{aLfGY!QJaVz!Ri+GNC~l`>N1b4ulfpw->gJn`7Oe7W zpH{w-ib;zm6MM8@`Dm~lJ&(>b5PficCVJB8TNcsG;2Vi-$7lG9r>dl4)h(Lou#Y6; z0Bdsa%?ztS)#c8l_49Aj>h$^yHlCP)!_RB(!VT4UJk4vYPJWFlgik0)?I(n07Cqm< zo^PO=_3UOnf%guB{vEdJ!%p>*jrR4^5g3NxzEmr20mrpk7Q30BUVtYPSnTvOy59h7 zK!nf9N7ycx-XZh2#B-O6}SO47`@=BnY(G9CDe>bW*%X1ck71!Soj&mMxci!$|}vFI6TTu-ymeoEThnYW#gu# zGn)rPX~3V_wUXCRD_cv0-jW|%D^&X~iTfw!G^!pxVeCLxI#s$fU?Jm*M;p*w#&(Jh z=P!^qYYPSnIB&oYZ!izUxrXf$Ck7)Ag12l*o29Omt{q3j?RuWC zl%yjOhOx5}r1KN-RD%A}DG6|cT!Np`coaYos*?(+PErAQgy!crQ)&&HfgmE>-Y>&| z#~%u`c1eD}ZU8BIcE(Mtye#$%EYfyt=ebw9m5)q=uhl4r;|{27Ah1Z2D5O|0F=ZA-YP z9d%AhEx6D9Sqrvb6rQgJsLMjunFiO{iB3DC(@qsBvem$*_ArbjPkfm~GK(@foun<9 zM`5Y6F@GD?2W-boCo4>yY)56X$;4lQLX^xLgX`u{`g2(NbJ)Ql7`eo#mJ7q-Wilns7KAlG~AA2vWOYDKGwuki`utQ7lmq@ zLYS~Qt9={Y7{*BZtjwl#)Y(uePe~!|jJ5|8QtKt9(ZqBsGm%aTd^$g>6SuZlX={QR zf=G%p?urwV6?YlN3~Y;_gPekkVQ>R9{XCAxewjmdG7ltQ42EGyO%O9As-9x}TaQ{o zhAGJ^B(a^-R6FAj?k;$q_L4!hHB?B!CVzA$G@%(1MWkZYJ&yBuss&nbJk1O}c`MAko>qDRe+=wJS!b_X z%j9^wR4tn1Y7zKqq62Y$4baM?1c|d4>b}N$ZGnr z)L)4*Yh+ugDfGK^-6%_LeMV4n>obA^eMTYBXNVc+88gn);%6$ZY)>$5ISzCc)ybKg{u_(<(vo#gv&~iI=B}J~~U`fZp9&GYS z2xg~zQqZ**9x?I7@kpO{s^o48XBk`r@g@q z4e9*wNPLx{F`vhV%K+K<2WuGdg;XY)a*LChNm4PmK9@0w+Uoj+ti}X=9haGN&Ea*% z3>pvT%wRiNt)L4yO~_RoFtLb(XvAa~-#p9xMT@h)Aio3Md1}bzG4+9z3+c|xG9uj) zfn|)qGL-(?!T)ItzGts_k z`a$ue$WF4zPNuPAhb;A#DI|}07P3WTA&n^+24VCVfx0$l*#T_ui`q7|76UQ<+9#zA zlTv@4bMQ%QJL(r9kr4eNqtVEQ7VbAu1?I$_4GtkC@y<^=M!)7;tdG6|&=F^67?LH` zIJi<&TKymK)+F%#0@Nx(nTP%W`MrkS1@0J^ii+`TW@EZQlW3p_L$OIVk<)}unm4c; z%}k=#v>K@z!>#>Bz6i=VI&)}-p`U!8$<`oej#PS*bV^TfH}sk}gT0BmXGql9?2A+d zfp03?Yf1{%gCo+VwHTSGq8Ygpb(PWF4Go_#OtH0(h8r_7p&ZELNJE6+K_gO%qXdPQ z`Vng>u-N0$Gw9o=fwq{5i$rti#9rLdCeU$^I3SROAu?z;Dmmb_G|3GJv&Rs2fMAej zl<+m&3Wr;aP#W+S`goSQM^iI!&<8x&FC@eqwPyzgmyY8`0TM||jg=M_tM_QJg|~d? z)s+}PwPQ;D;UR1p#-zw0_&zM`PSJ)W)Vx8(0a3?N#AKZ6=Gq^!pC?U>yxJcQz+%pH z*SajyBj_ew_BOFnok^ntSoqSYl!yaaVaIbHvqmS;@Pr7J9QKIBBomFFz&-ItG}92M zh<#@);}0$lF4s(gdPZ_44Iq_>xszxlLNqfqQW~g{Tf&CL!IrRLF?DBJS$C#2mA2<) z8VB&P5L2e5{&l3lOiDNn&5C?)715PM^yB7l^nf3L3%5dLrs6hxAUYitpt@JEKB70! zNjU}wc7AEQ84dkmf60W(X#HP6`5#>W9yKKI^NsHBvAXR&&;%_Fg1noGbq4GI$lJAX zq^^%+jn6n5m+hBs4b~vsnNA1siAJnQOqK?l{ECf60f*ASB>b3$SmpiO@-dRsqvn2T z+?~z_!{HUG>fl$3vc8eTroJ(i#)aw|X|O9loexmbMmz|{4r|G@6kt_t$No>lJk}3_ z-vXj)9;0fW8T)DUi(NP7fcm2!cVV9voz#26x9Rw3^228oVeQk*K|@VO@_ABH59JiKq9(Ld^%u3%l$6-eEK>v5z3TRYzq8R`}q0)@)!NGc7fI z(5;3Kx@EFKH)(?s(>t-&5U6&deM!Vm*5)?U4nWYP)8^zGTu4p99+$oFAd}!t276xn zE@C@^;2t4A#YN5o<#_RUc{X@{mO443X>id%dt>oN8c?{44-<2}s^M3XPyjiI$5hq{0bpU`v;h#2uQAN78-5r2)eJ%X@-Up|x$E+c`24og0p2w@Wnd^I9t z%|=!OY{U+Pk#8on3hEDekdUTec@XRVEm9NOrl)J$9q4{&CHHiQjO239Yincy$}2j-aJMrv?{I({g#d zCC^%8oaMzfA19I1GNei7{u#k(Wl~(6 z=Kl1<-eiSpG(}LrP9{MI1u0-b22$kGUAjQ?-Wb-zAE2L^`;nShfRms&!$~Xsp}P#} z(}_Jsb|fJV93zYP_%Z8^t!P!MS@SMR92L@FR=>9-JK9Yy?LP@;OPDj=$ z-0v#f8)=S4npzRqjLjK3YSuD>Ju~qft_iUFRjD+Yx)uv&CUt|Eegpth;q9ylf{^2hcX;G1++`?x zL3|avQNA(D9VS{{P4%~kXY&${TbK&6MQV;snR0V%V*RkYCP_YJvp^>PP0kN88A%UuPEfx{Y+_);!etP4F&3?YZqnpd@$%qO5+iH*svMm&6FS24WLIXvrl7yx=gy-$;U=H zrC96c1Yb&~WL^$>+(@CxyKcP%lPSeUW7{bvQCk>obBxoS~@CQwSsl$4TKjB^cO5G2>V$`LSU@3ZKgY(a76C zn{uFy9+%OzmacEo^-j9JgV%NK0BI84pTq=3g0v>t1`R7PZSa~mDRMqmVhfIy*!Wn9 z4aZ7I@MuGgOfU3Zk&&$w-}{und&H1&bhVLW;XtHgFY|kYD1djTM!Ie z_o&InmE&N@jYK=;05mh%o8)n=jjkl8(4v@V-GPmoNW9WZ50Mx=#N>!Tt9^!qWD#U) zh#}1;*Xro`40;MC#+9JM0Ah@LZ|L|ZR&7afJUC56Re zVO~y-C>G|<%oB5F9oMcV=P9^xWzBxp{fTGjnFm znqD|9zc5EEDHMxybBpqeXU%lX%AY0Liwb9y*mDYt3iHI7`6c#3JA|K}larS_qh!YP zV$trHH3LHB7M0j@bMx#a5aaaR;=)-av+T3Pycsj{a`PNBW{SDf@~2I+PoI%L!)~9M z=g7&MIYXRf7jueorx)i=7wyxgJEr9pO`GP(oi?*1KQC|AGzYw0+%;dFb^%N2OTp@l_N!{a%-&W+~hbRJ>u$O*06|$Ra@)U=UJo5nZCgFABm!gD`J_ z$6Mp0P`08;R$xhP)--!gz7>O8m-#&9Vo|`FWi1N?ytAiHb-O&JSzhLw?eUdPwSolf z0}0qk;hlb~!wNx4o$gXAkP;~I_$sY%v1Tt_xWZcP43t@Y&Z065WA%Be0vOKWF1A)W z+>TPQQgjEbMGmi{(CKmpoT5KFouc(udA%NAz;6xs9K}wQNQX;GW{TAx@KqHBs(fOx zoHRxmC=;zkp2|X}+ktObJtfvcPoOM2J$*Tg4#G<$`e&!7XE7ROFs;+G^QKsH!P0N` z4C@5A&XmF}4?rRgU$HeOd-~Os;IwS})n5yZCf8cza$?2+wi2gHgb?3yR62Z4w{^a| z*ynK;Pmw*GH~Hc5t+y?M>upYVF_b#%vNDfbwC014ilvlf9{4WtxINa~^z`ci<@w8( zQR)jkK5>e*s7x%Xm`$wn1MjM2!jp60AkbKlFw+6Sn@&6tEkSl3&JXc;J?)` zT37fSMWRivWUQj(B9D@DH_Xq;m8Isi_;)l-Oa_nkYf4qvH%5eH95`?+7?teVH)mkV5SbFli_QHuzsG-Yr6fh1V%oT|&OI*i+sdNOO zeYo3MEc&pZD{i&Gc7w=k48kl#Zh4j8E4qspvkKi7AqF6f>KdwB<{E^2eEk;DUsWk~ z_w96p(63?}kPLD~W569dzf9L_gHZl?I{gR++!xeT!HmIw6r*$)iTa8Gz=v z2A)`bVkMA>nS*A%qzc)*h%2k0-Vy|}K}dt*FWnA=&P9>O z9dLjMGDX54aDXnCg~}ic4dq>OO!=Emu^JS6nXGwVRA8NJy?0UZ z{Z>-d=H5#`7|H$CZ#rC6qJQqa>^FM>2u9$3L71(eFGVCZB-V7NV|zz$#7=9bLAZ>P zMnbvPvzVGXpk)@L#e||tc)4PY_CAA9P2IYpl5nCHr4o)qsD?l-AQiR6jv7x@fVDUa z{C7*YSXE-1Al*Y%Ig+_=gBJfrph)!1cNbsp@lahp!XONReB^%pTa_*XNqP@Q8J0UM zp+%K^MnX*m)nOJf0%76$9X&~=6K%AOv0)fgN&tpfS?H?Cx|w5>i!kAh<5QtZHBNL{g~s0v50vZ{Pe);KfDidfSw2sayq#ncl< z@1Q=)@^cGlL834ACX+M(%uZ(Vu@dnlcI_Mb{bfEP{6!0p99oK!N@TvyK_4*am+F3Wfgvg4WkGNzuVzsnJjXE zPFl>|3%DC&SpbE@M;=T>5qf_OaI-SYjp{P=@_BBrU%piBQ4ZxK3$hF9O|alBq zo9}X#x>1&IaGpIeykQn7k5^F%OxohD zSaJ-B78-;*ms9!5o*w|wDy#~KQ>>N#B9G7IESzGMrc0p0%+AZUPq8k5XrLLJ>lUk^ zUT`TUt5$d_MEBg8MPgBYUh&LA(J^!8tbCC=clwm52_D8UH-z{~tW@}#SXg5DJjqcY za7Qiqz?-#cy77gkGS(oBi8l0fok5tpqRi>H^2VaZ3e{&QIHf6zPD^fI&^=})5TWO?9sbyvth$Rj{mNN+B4w4%402_3ZZXK!WM`Aa1 znIlm44W}E*81+{P1`iw7taiFw8dZlV&5P1sHPQShV^}}QfhXs&N44B1U3$cVPc;Zu z6?MU0=`tMOg=BnbUdhF3tOd6$zMi6JzkpFpgB;paaqyljyS)kYni3FFHrm5d#TvLO zP?D7|2%x);Q@Pl`|krc zY7(>M%6)FYSH=8EZ9o?vH@=^>uFE|RFLHKD4A7;Nkw!^qZIqCoMhKn2WrltaGnn)WH?o z$XoMuqn3*#SEg_D_?-8kcIT3{Ww|+6MvmnMVX3;kt&FMb9lk+gk^hyi!GVURz#v?U z?WlUxHF~3|YRD4OAm&h(f0J$?T_;(b3||BNQybi26ijy-!Jr)=e5K}#FTOZ_;^g6@T|KtPj-R-2;eu}DoA(?o z`Tn*U?(LIH8bj@*k{ueW8*Hj``?nglez5JJCh{$Ny7DTwU0t?YX(yxIGpTH^&AE4? zvx)3J$NhDFB@q@rj zDBZPJ9lvd5(}>E$!z+&tb9W7M9~%m`vg?^Yb?8P8W^P~$$n9jk_$N8{jxXK4w@nrQ z1Ya{m4$%&AAGdf;4ECHXda@0QdARuJRBf5aBvu>$CP;T&*&a>&<9#g_-#d-Al=aT$N5@;@(j;Ov*)wH-V^U`>yn>B zF7EtM>xYep)bVeFqK6Qb>`=vDjPZ{x+pCFxtZzTS0+bK*p8oFd4l1L1{;vmzxQ~6% zsPg<8#9t2aH|fQ{Pd9!<#{1b#>pRY0xFA1jY&|i`cNmh6KYoknr1kE@9Y;P>_kM{vqz8uYGV>8Oi-Gc9^}N0aJiAI`KR8;t$W?d!B1k#_-n1M+SRO zGU7qBK2*mK{GEW6s+PY@KF61-WM%-4QPSf9yCi#?t|Dl06JH9@L_jyAFQXsH%&u z4PU>7*3Ysz`PrFk9%zeRl4FR+ZA8uF0KQChaKRHbN{->L;iK*y-Rt9ZF#~9v< zwSAng!x#Op=?0E6d z&174C`{$P5{INN!a+lP^b32wS(;~kA!gdJuB3gWFwwvQK%i9R5nyjCcJgTGo0H>Jd z10p?vR212g59&go!|19&h2Pr-6|5ZpwtdHEy0?Y~Q>s{Go5=2kXqj>qs`-G;Dc`nf z*Aa~hw|oEb^7Y$hxHe%~3uB=giSQIEf$Wk`zP)zKr#p`dVGQu%%-OR&wxFtoi@BE! zN)_l?gPH^(^&LS-f`3D8Fa5v6{*y4RGtkGzw6UKuPhi7+azDl1t69Ee5@L3@9C_sV z-8ZdnoLaUOdKS9jlNxq{SjC1lkuur}g7+~yo?B(p$vveos*K3F zh>?J4uASTVsLI0HU+(H2<_gLcG_&Cd*|w-HdO|NiqY3mZ7q!pqRMNlj?oBbnuA-ci zEfG96Xj?-pe=hJ2#Y)c!X(tpe9 z&ANRS*)%-Y6r?;z=YcE2TSZ>>k1cP0LWc9Cf zM$!^U|IN|pU-R5PnQ}(nXd3ZjHdAeteKfG&ShH8zLr*yUPzfwsy(KFBLCS+PV;A*u zJu8i5c8qs7ZwWIJ7-~M+-X7Z3ih=$;QR%OLu3163Oeb`=_3h=%R&@OGPX}Top3xs# zsYa%s^$l-|fqn($5}lQuBe^}Su-tQ$tJC@9zSxOp^wZeso*3zud(bzn-WoaPy62lS zgOqccM@aTE96IKfjjn*ry{F~a$up6o4WYk-+BH=cBGSKS5_QRApudF?ub`Y0JiPL# z#)9YNl^uWEdZb&#Gy3Iem#FkBhcA|{-WECL+UHvs>@ww?S{g13wU55q7CFN3^wWfn zLW;uE&%uXRmefY2zjb6#RE|p10bN7cjDXs%_`!bVNOHI6=VLxG(61ajT2i|`D*cRj z8FNPJ5chGMcTm`?0v-E1PxXL!Mn7nJM1K>Ng0S>ULsAGnyb=rj8sa(Go)a`_!tD@u z*J~ei_KbK=e>s~L42n=#`X%t;mBrEMUybyuiRUz*%uv`>zll=YpEwn%MpDu*m*Q~r z+qy^p{t)6B&8G%QcK(AMrz7eKe{Vec>i@Jxrk{eWBb7fVL1K70=X8_qd!>l#7O@GF97{o;)(Lp z1HpPe`^7tlBFC`unf=2mk8a%?DVUP}i80X6geOM&)!?5R#ECyMzuHp08DhfYnX zK7>dMehv5_HbDHKl_%ca7D+umfBwR)j~$@N zxbD&~t*nSdfAe_i)pnPDGtv*>pZ)IdqVx(Md!wCZDo+mabc23X6%-TwJ7TAwN-he| z()Aq|BI*h6H+BtMc}$}J#6?0s;eYyyyN@Vmv_lOvRoM?58ido(y@&t4p2^Q3&xzlu zXUs!Q`7hcbn^4j@{oRrOsPs>Yul!a&7p1~{?%hKJscD12gZX57BFk@&>d#{!13=7m z54J}hPuQ{l#0Yftt}>`eV@_)SZ`@=&yVl=BUcExgt5ei+WY{NBOKT%F4C zPsKp!VZO`^iKpS{^0rv$pX7{n{8KIkJ)^(n;K|8VZ6g!|xw4f9qNTBPnhq%6AC>;l zdC6$>qZCCQKMytM&YfTO-DYVlT5D+;o`P~*lHD=d*&2=h_DS6tKaYL>BGf$iVhfuK z2%W{aJd|=am*i}TPJcJ&FQoae?$Q7Lw$8EcwoJu}clERppFC2|g5gA-vpF*TALIN{ zugu>m&Ec-kX5X_B9qyR`1kX!Vz4^5wdb4xOfAX)0FLb;qBcR z6){+XayLZe*sGd8>pE(DSm&nVZ=#J&XR>-VVE z&wTIs=&vZ7w#ZAE#+NHsF$Jx>7AtfW)}%72V-gz~YyLyEeyOGX*i@$uo5C|9+!C_T zRby4 zH~S78efEu}qDLC9^>4mNwoP5+c80rgVfEH;HEen8c1DLdjA`#Yao^KB?BzYt z{1a#=YwezBc6XfGcmi!!*^ZSzZrs_d-C7&fy!}CYzGwSa4Y&@xkvH*8ipG?$Bu6vc zJ6`@vYwX}Z_1eCxOS`?*F+s3LfSN`moY8C+d>!O{gc@N=EcC7w&#?M>z1C+PbbT>EQ@rcac|C zGNG{RA&F;~O^D4-T?XjFeMx#v|I?zyY&hS7S-tEuY1%$Zy+BXb`{#XP{(d{ zcoC5iz0QTH&TYE*>n?Rj0QmYcuUC_Y$2{Wk7dl5_jE&5TkXB=2aIRm&g~YQ!vqB@` z_(v1_5P=U$yDsKo(GFSr5tbvGn8#}wq00rGf^d=JA5QE;E1U=dABuU%lABnpE?*)S zhsf1Y!U{q!;U5irb!`(O@EX{|0j^%hrM9XAZM5u&zzCTO6GFJq8!Si&{Q#Qz(0JHj9z ziaEzQ@(Eyy)$BTaQ8EJ3x~ifjmLtw$H~)(GM?+p0^A5BwJnxDMV6yu(kIPhn~J9`s^|E>tg zhe5lO+e$qvKh@*N6|T0wZH;mUPCVu(ud)N&q7Rey41cBY+Y*I;G~|PrOCX2r-9D_{ z%B^JwkLm{-q8w%tr$PLkF>P4uDgJvV2M0Er;>Z8S`dtLR4)Pk<^-i6QY8AY2b>94N z^ZD~VIifRm1NgIH(x^qC2ly*%9)^EmBJdB3d=PdOs_Ii0j;O8XG=`wH`CIpOBy5}^ zoRRU5S_^d-e@)H9hVivEuZwn=6FhV{GRk%E^}k0sD>5O5@NZJj6eJ3N zrSS9ll)^`&obVIXF#I)QAA-Ct;77w-Ej#Z0b?;XDvH|?rd`;9M&@KFRg@2-RU;OxA zU%w|r?6t^;VjevB+O4+1)3AfQm{;Et`H0#CnxDM7Po6J}Tm-s_zpB}lXA%>Izeems zkXK;Nq3()iIXlMSM>&rt1lw2);jdyrxFQfc{^5il@OLBv|A^pA$SW|{Jv%+r(otGR zo(=!e(%vvX4#7WM5$F#7`ocfK+3fg!BJht5c?Gt|nAJT8ept|UmHxD~m&O^w8Ngqj zxQ|=}x`n^4@Q+Ur{<`4nAs-fVU7K_7f$o0FA%3Ha|D-tZ*He3>1tjHw|IRoGURb|3 z4EQSK)z}^%63t%bKK$OcNT&w%k|F$?l`IIS2z3vCJ>gFj{>txqT&5L!rOfN#Z1Je9 z?ElEC-S~n`0uA6lUX6daDkv8Gbz5Fp_!EME0phQy@ZCrC#9o29=XmhQ&@guS`nH~Z z3M77m_?I_JMIcfu92@>&TVA$qEfM%PjZjOz27I-s2SH}v(FnCyRvqf`r%d8EKYq1Y zfq$eT5D)(26N-O$@O5Nf7jxNK+{a$~M=uU9M>RisRbIrH82rOmKDcb}uDJ1EfcQrO zUl)1l+cBp!HtMHjqMA4tViEo=5vrir@t1{vQW)VU{CCBf-v#yi)L*2E0=@?JL8?#T zL^hTC-q+JK2Jq)gc|)}zbrFai|8SL0!thsUJE7p~A}?Y78Coye%X~*7 zAJHGx;9=%JY zey9C1*OB)&Cj|fKRZwjB>vy}xB^3WqZATaU5adtGwkX=Cl%ksbhfa+Pv=6U5vUP9I zzoho1g#S1d{@RXMEcnM#`6nFzDB!D+A1GOSZD-_9K}9v^&tJIhhxn@hkvN>hX)_OfX3{@(LTi$)oj|^HOg~H!vDaDQ;|L|71aR#{9{Z~ z71U$=qc*+?!oN90_=DPx5`0vsX-!GCNY;O~|3XKLr!oVw2Ar{WrC_~MH%zWw8N_Ho``#XpuV z*uNJ38Q$X`?T&Yx;n{Z%vS#HH{<4X!{yF`<-yMuIp=~Y4M+Ul(t)72T{Cl(gjfnrU zXrC;PYEGR#m%j$TkK8x-_fGrE^v}fOAEJM%@Sk|k;e&CHGx&eq&Qw_$|H0B%s(Vxa zY>6-gdXek@yb17}c=O|U#~I%I=x~Pj6#F>1vhx2|?tk^s_`|AbpS+K1S`MAMa@Em+ ze5OoQ`S1^g_X_^er(iDT@izw1bq{u&ITzPB!};^)Z+N5w)F(~lqg(m+#`sUq#@{sf z_rdsc=;X^4RfqS)eJs!V-ybCPHLUO}JHNe(zpW?uE1TfH82=AeLGI(f{%gGJ88$W^ z9pXC?1RwD~6`}I!ef+yO|I%0UkIkX;kK)hbJsji6@iS8%IIIRgitrC}ca2XR{_)R0 z#-f78KmR_rRx|&8V#ewN$4|ut!WUnBAwJz65qurtPZa*KD4!S4`iJQ?s`V$Myq%x! zjdz^kH-9~3_M8d@KSN%ot0(-!5&xD%;GdB74}G-$YFdqI{nht>7q7zE*m`1w|0r82 zq^$G9fZvPwhu;Wu5v@PWscDkeAKtpY^}>a?w#%J8_xUyJI%KgA3%*AO{Ne7S6ILb$ z|3s}n?CtfpP*G3vH?j4%*)<0ab;Wxu&jT;E^F_IeHPVB%;Oo>pU@xmoApVJ2f7{#m zfByOT@!n<-yiuOccelnn&hXa9hb^At>Ky?mL%=^SgRc>O!oT@q!asTw5a<4j(`U{O zFKdB}uYO^FJn?{OJA7(fb!PH9Y z4CgOgxc%{VCFYV1?iZ8yk%a;O=!gX2A5QqYyZ@yR_J8eYK02zR?fvcX);$0IM!R++ zm=gJ**oT7OB^}mrgz(=NC;mT9@cysRfgqI@6es>0w;rtiWlKCUfcg85qa(aWbT^_Z zcM7XdC(r?ZMCIW`;2*mGRHyRk*8b}VRZyJx?`b=B-+803R>z7l*qqikhU{P@SR`L{dx_wM-{ z@t7ChJvgMYOAUAsa}DyLb&dx7QI(wu!at@XXfBfTXL@Y*wV$|R<-u@=pA6GQUMu!0 z@OuycP~q<;{=InqQqRoUbDw|X;Wp)2KpMc+u&ZkOaNv(}9h$UqZ~XWt{QRW|MIiq3 z$9iV!f4e{2L0H;T$kd1OX^>Zfe|hiVuPglB$G^AE-|K<-!^fQ?-JR-__qsw4;=3#i z@(S?f19JJ%my_ehzn9M63s(gC9{hF35&jA+JFI`~ zt>zTs2*|Tf16;jwPXh6eApAYWUt0wF690eh?Hc25k9Zbz*i*Q5k=K9^c8WJ4_(vE1 zp5Y%X0@4xO@t=Plqd9f@?EJcxm=8jabOe0}@*Mmz6@dTl`0)>S;9f%T*VICNhQIIU z&C$QS5aufk5x#{nI`~Bx`~XLy@Q(_9eE28w`y;WK|9r3G@`{cKpB<6Eb`jx2B;mfu zBYza>ii-9u@2&*k-^<@0QPe^S`2J2*({k`cR-m=}AK%gc1kY$C@~#fWN5Sv|ObNiB ze}5qoWr;{)`2^ivRoDI;|D^BYXufMjPQ1gqqKBCIbIH{r+Zg z+~3~}XAXCLHv67^dLQ2merhu;+98-n_yni&bF@=EJN~uskN^9py5_=#FNz-98~X9t z7{5Fl0rqgnvkwqo!k?LE|IlhJ5BC*d%{Q0B*>GQB)_#In`8jgCr|}a0+nc*4d-jF< z3UBG12D+S$>fMCqz9yolMhMuZ)aXNv}>x&OuRpC8z|>Zdz& zZMAHFwiE2#3S0HFT^bws*{(&acgoAEWvgLC2uH$N-M2zuZy7HkPm9)?uP)yi_$en( zNifTToTG4A2D_qeOJCw2DSpK;o#K<7^4zg<9g(!4QTnXOxDZB2ywGPyc-s<+c~Ibk z$a5Ol(gkMOG?x4^O=(m!rf*wc4EXDCA;^MgT#y(MS|Y;pB}%ZMv`er@MP5CVl`!NZ z)m_agGlE~?q8i+}0&xA#VJN*09ULR3abR*P+@oe%y`h1xf9_I+s&S9q(wl9$fn^o4hr}c;~{$N%=v$MAeP;gqrI zTWiPh2>65f>!$~&l=fCb93vytya=*Gwvlkw16+-HU&GFAY2#aeZ;uQ9B-u~gX1ApJ#np?3634q>iN#oxAc!b@a{YOSS_h0Th z$hHJdT-mz!z;TwnvuDrcRc>bCZKXTp@S`f)FRMHrZ<&ppRQ}FCx2tVDug@vC` zx@#|em3zL?Uut2aUIU^oU+#* zI(8C+{rBd>fB3MCg}1x617Z|@j~w1odBoy9_SdalU(&bIrrv+>tq(hRc#nSghhI4W z?h9Xhar=+(la9ggEdHWTmGs>5NYnZA_$i-f{@jt_ISG0BuMgW<_#6rk`2|+8@J(%9 z2alWr$JTwvM*BL4xQ`95JSvBu=H3eIR^llEa`xKV7Ip>#aN!Rh9$?{fB|Ilf{9?xc zbQ9aimRWIdOhxyPFQ(uHw(+bhNWZe8TPYT%r=1NPqyUU=Z!58YKc@jsv3a60*=^HrITAJ}Ex-_*~Wf0el5 z-W3efk|L?%F?bm~q$DP4`}baV(g9hu7yR7mEV^JKQc$=^cJw(H%<{ zgTqr;e#b4MOLX|fJN&L(^33)Y7YfU7oIfpZh9JfE4;~v*d@$?nr#_xvb92L&7yAA7 z`$3A{MYmNS?caZ2N%_Am@c0T`t|bnqTd4FGd3>UnUF>r4r(ceTSTc_O;m>qu7jlGY z!gL{5$P;D=GlhI%mM~wqPFNrm2n&Vlh5Los!W87EaE&klkh+S;qW7LdC=`l>VnGy2 zbf5og8w1G$v>UZrf0O~cjz5|k;s0CDn1m^*!6#EvbK&|;VY%>ca9t?e0yx!8@ad$^uIHo4^Yn#N!lPz>P(M8#v;j z=i}(D74XynzJ7S_5CRa+19!}9NPZ**<5&*)FBfBxbn(}k-QIh+PQcJTRHOw{BO7B1onhM@Mbmfc^ROL$Rkhkd6?yt_TAv;Bg#r4On}oW z5 z#w$TluF-s37ztsex}t#SC?edwsyZfEx}@?Q9@lKDRRrL`07cy2q>z3^oJ>};LF!QM z@G2^nvhH8t1$l$P)h>@6aWAK2mthmW=(jF)xM0O0RStK5C9MW003-hVlQ)S zG%rp}Z)YxeZEWnlYjfL3k|_H9M%@2^^_&>X6EfX)?~S|1ZEIGRtsd?8p^(_!v$vyT z8U%_G#vs5!0g^bqeSZ7RM-|>A3m^be5;u0*A_>$Z-Pt|-ngLy|5)&UZ)_>WY~nA}XZkL%XX5Dd$MEXS3;I(%`l9sgn;Cq9vGcF; zR~EkZ_R0A5e~I{AWP5=e9S1=e+cB&|j!x|0o%o#i{&5^f-Xw{|liV0Ij!b4VJ6e>! zJ_}sWv11{v_}Y%)Kf=1P{X|&dls>>KUxjN4U(7@hTTYnxt~C+X8|Ns1>E66>jw~6@ zMC{FkJS>haLmI-l7S2~|8b*beJZS~O5mLgMU_kg;SY9lxMA}!PwDcGCYkwo|?AhEG zM{k_a6{R14PC@dEHBTnK=UCz7AHs>Pv5@h>GwU}i5^)j*7B1;K>-Xa8>Xn<&bFCkw z(C-uU{0j_^=tS}LshSAK9KZ*D{bUQ$h!pV%rvnGk>yV8<0 zlQmf&=fZ5(+>T=b@Ua8eItYm>ZU32NM^_1gLXL{_oZAuX1l~BbZm&J(8c-d?xF0

jYE9JXuocU+s1@P52?FEk6q8jeh({|=+G$$#7zA#2?-O~;9< zY8>Vq8oQlmEJ_QDBJ%S6;;T{8u!JQwv(MD7aA->ASj%49PhhA4ByHQTgwTRANpJW@ zw|bw+Fxzxlls=O{u?qMq)+Zqge|PiXG)Jkjui9{HQFw9FR4cGu$L7tVQkyBpelh3K z-9SXxD5nSMTUhB;;K6kcNB;WNd%V!MD@h28lgdRYSjFCblP9U0YITNAUeg1u89KDp zR%XzGrR5*jMXjvWRa*{9LXK3fsJAQ;o-f`yckgdc|_IT@X$?CVwiD6XScs> zh;-F=YIp0TPI{k*Ed1h(3EgF}Agg5c_eU-$&y10Le?5C6XzN;9&EDml9P5r&pBS|F zD-J2aS1Yzmi5vRLd5x5V`h;b-b;v!Ma`3l@X>3*}g$hqaTo-*EzG!r`PR7_BurNi= zS$V@0IVPdj@}yG1hCa}Gs%P+kouigLLl#`+i5n_9aNr=G%Mg>%;u5+1<7TksR9t_O zk43=qb(Z=sVO?L|Gm;GMUwAdS`x(5_+onrR1y=!&zGe`>2!8&@ zc~QDkL2ZVq6P|;cXy#icnND8D%0_(#Om(1p?#aU6=Jq+t&B^z%lCr{*Vhj$<4Toh%JXbFb#AP6qw`f@DAP8GtFyf5+akU4oWj)p07;dyJ;&wm8c~WE1~L(6 z9uT!}Y2&!4)@emL=h(!6NMWn%3Iy=0MBZaD#B1UsE+a)?-$Pj@H?#UwCO16OV59^Y zz0I=B!9z+UFVJPZ_Yp^dpnTNGRLkUfmAu3-#hBmvY#boP3YlnG>U4LJ^Fj*O}zxl&tmDqcR$to`; zhu6k6*>ux=#)~)8;q%R9wPl(|;hi=ntIsmUOdVz?D{&ND9qzrtQQJ52An@&?WX|{O&#J1^ zPJdRa_bhYrOgdV1V{7zXnPLeiKj#1|s!Mar!R>rao3xoKTrc{}G`3;mtAkhZFg9tF zWk8gI`Se?+3ZJgtWvWm(pZbQ`Uyp8L<+gPm$*8po!QWDIlWRO1WgSw^@EYB@l>Cy{ z=x(P>C{u;sa{J5no;m!gXk+%*`3||cmdO|keL1FO`=p34EnD{KOY@V;^2hZ9OlC%%YY2B%K_mtN{wPz|f z*HU$QDjUue%%SlhEi6u;@iOr-TY+G3iV-jJ?Y7yPrD~gMp-|19;_{aR=DEGGN&0y= zdwEEtli!y*PZBsVY={>(JUb~1KD{>R08#iKp|^0`;^D+p&?~jJ`F-d~llS*V|5J4S zAe;Kw-Afog@KdCBCuJ#G|JaF*uL5kMZ!v|1J}h!w{D-1^y|a~>nJoDtd>?s|dZ%Rx z(*ZRjjknTvuJ*p=;I0Hc|7u>BMN9CWZ(Tet=;h$3Ekix6;%Doc#ooFur!i00Vz1s~ zp*X(z9A-8HyICyTG%jE4FBj77ZtA0Cccd!<%-RSpERmaQ-OZ!7243oiVRazmnufPE zFvPXz2=kNgnrSYsn+wLrb1rV3%X-`9+GAx+E<9)@y8JQA=I8vchZ=3?iX&u&YytU+ zZ@Cz4+w@-^iV?vg!Oqn+VI0$ah4b}{SDu;uS6>>@dgo6$@|axv-Lz@MC{%+-3~Iq- zL|$siwFSs4kT06tkiEZy5h8K)>nOMWDil>61zXibyf8&67)c^DB`*oT)ESs$A%&O~ zmX`f+;XsG-UKkPkUDJ^2lR_L4ZDko3+LoAOt+A`k(rnu-4pcK+wEpJBA_#ER-YOoy zYFx1x;8b|#PNu6X_v&|niKoh{1^wDz7w90v9AYEqxVZ=;eEZUO*4UB8-DM=3RnHEWx<(T7Mm<=^${9~GNDW_c#GGX}n6Y9EGI zG0!W_C%Uz{d2Ooyzlp5Td-5R^@wAaKxyo1Ch z|0Mf#64N`2UZ^fp4422w!1rnS`!47IYxrpf*<1~jDm0z7BB*F(%wm2Z^ftu{4q-3N zRP$6U<`t8_v)5pmWq>^FtXS$n&ov`O1$gsIZO=x6`A86P- zxSY;LE0WoBKnLG_$`~C_gA3kf0?}y0*bL=GR}|h9oJ-;ARgtsbHS?xU%_|LBY0qPSD_n9pprL8%`P5~dNXs3pkJ{|PL{L^&l zbo7i8oi;(ot$ zy#rjkb8#Y+bJ2Ay+-Se_;!%;|2U^!%PuM5=H2s!bNXAS9hj)?nAtB{xQv|&!C;$y5 z$0$N=%C!bsY@Qih+|HlDAv5DTN+& zC<^{{>!_j=r6V`gC&1vU)&|IWKwr``Hk)iF$WukT_|-y`#&O1GhRrvaXd$;~g@N0Y zVEx&>fxUSbp=H)wxm=iN9S^RB{WJ9nQg^2}@XX%U9?c~V^9`%>4iMY?SW(IHPaAt<@Q(mMj0rKk;8WC_?ll;P`zq z;(^dJ!cqCeAbWKcQxMlwGcfv77D{+xLDA5k3)b`2>QlZKS+XP6|#yWzQpshKZL z$@Wl&<^w{o<*TmwIOV(}uSfHp^QCw576%KRAtf6bFA&6zeN}~+3zJ`bHXD%>`+i1# z_^wt06>i$70F@jj23LM$EYixLHz^Nti*v~L=5(*}jcw3`cS#cRMS>KEU{m>vUN4#z zKIG}z+rnSO)fEA+e%S4+y>Lm$%j(s=3xVvv0dnGZ#_og;!@Q=rkD~%|k40m4!~Q~^ zwwqSBURWuWaH0anOW*+O57rNwOlP@QmpSK>#DPWi;dUX4*O~)+{i|7V+Y%el#m1S@ z)?x{0VN!(M3Gz1BE$Z5g*e-NKK$vWT=_8qZn@6i6+q%oFmUbr{xuE%x2?-Iq}Z1JOv1-Ca&A6HIT&kc)jwUT zoFRJPWUR_I&A$Jozqol#=+ri+bv*6(L?X=?HoQlwy5umd*(V_YM7;dyQyn{|iF%pg z)Bk8Q6U?zh^#^a-+~-)^9*%3^8?sl$!;R-TT;$Xc-~PikRbriXmw}j@EDrH!Xy4>< zdOu+@rUPFvu(qp78QFu*0Aduaxhe+%=Un^hC?x^>poFk$KRAMgj|GD!ZA)&VzSP7K z2K1DW;xo_C%w&wz%j0P8{8BF0+`{)MK4mP8g7x3tNBHR4#$Fz!FNGx6^G(`#BHQMo zU75iL^08U_X+uy?BAbH~^?H@;ez%_;UH0Ne>6=xdbJY4DsMKhm&38W-iI!q$-M6FE zw6WfH2de3xXG9ZA(_Q4DfFB@l05=y_pEi-|DbhJ-;99JP{bn%V=ajC-P)=(|8-7nX zAutRH;FtHh=Uu7)uXM~C)D0h`jmmrbx5cKS;O~=sL?;lvu2_&i(C{|ix@oeC(- z-*kV(r?XZq9x=<56p&<-hb|7#{Wooq5MY3 z`>f|RPq9vpcNANQig>Z}b=87X5vS5{beS8&y3v-f@6UKfeG}Yf&&cLEz&XRln z#(f6!u1=?zsVk&E1{=Da#%X3Ama31Bbt+^!Z3QDHJmlPXmrtAUkzu3VmNO3zjgi*b z1XJPI7=KS+PvM<^9m-L^imMSH7DJmPM{ZSQ*04<d% z#}C~CE3h;Q1wvGwHJVF`OIz?_og!+I8^cIScXJ>mKm{OA6t^W*BCMj59{E?>=$ z#Zmb_gD+mq8_4*&4}QC=Fmq!U$r7OR`gcuAqwdg=R7Kd^^pDg$W-^Jo>NOw-iF@G{ zX~snw-gTVE47=F^3I+;~IdE77?+D?n4{4}wt{G5dw_Zyb{lWVQfeI9@{DZYuN_TU& zyCtK39Vj@Fg^~z%%E3v*S?Y9Cx`8v6Xi+hmM*>ZWyk(wjr45FcIb@H!~#72o=fua248PvE*qRX>Ot(Vx12T+oIgTzT&jK-ouCV}#m~Cj zQw2L|Jth@;S#DkL4*Tf(&~PkD{vnr>7HE)RAvi!9v9ko3Rtdw++;VCDzuwD##}Nf% zJsN71SxKkIblM6nEU9-^UJfC%o>f+N^aTc8f-tTLlW`2e`lX~MDI)O=`ZDeHchf!0 zTz0~w^ z)gxo#du1QU7x=35Xw7<0R2}hWGW@sa7#kd0wJ|4*FII6PsA4In0u`1|k23T*3Ig1R zMqVzQ{3Lc6Q=9Yc%1+e!H?UOljh<0gKc`9PO zU6y(I3$P$#&dF_%!!n%d%E1z|0&^coH_6$@&Jq)5{GNWc&Ph2Tf!k?SP3gb)UrpSy zI0mhkd zZPG1ex=A+wApsYI%TcjpMF#+ba>f_7JJBGI>T77$DH5)Px3!+r2UgJGDbhNJbuLl$ zXf&8-46Azq-={S&a*o!hEjJQ|hw;@d@XCh2?*E)fp*yBX>!EiOd|tc<^7skPZ9GAG>h3bi!j=j{er`68N>@p$~MG& zjiHQ}TCP5Kr7%OLr_4lndLUEak}vdpKTPCK9HmFpaz>sR+I#{3XB}4E8yqjC9V{Gq zqk*{&}Z_=4eD>ZjpCj&7dVFWf-Dmqw3{DZgok zlN7O8?=pP4pjqaxYh^QfyT*`#X94x z_bA(cg47+Uz{X-|x*`-YZwPC>iW=O_hb_cl9sMU$Xx%4}_x|&)pnQMA=>bH9%?Cms z&o;!l`Me{UmK}F7Gl&y?NO_3;$cgrC!bYKg>E7wwr}KGo?Aly8*uSBkjtSdmx4}*y z0^#Mz$_-i_L)y?8+I(mS=PSpj2W;$9N_G-nA>P=DF62>!X)`%|^+2}=#B_{O-!|Es0_^QUN2v}E8%ukaPk)CSzJhv$1oEUvp4 zWGjorCYZruHwbuxm2q80coWUT5)(q62>neb(PdHeoofw5no*Y{l-44)vTVEo&Hg}- z3k!b0I~FHwchrFq-4HZ+j0j0qG{72{dYghYgmwnlH(@N_2(Cr5AW7^^ZJH1A}v71KepL$W$x5szV-9j%(; z2Aku?_Vjnf8$`VR#y)1U2qd{?bS~k4g20rDYZs6TXs{3OT>!W|O5iu<24ZNT~ zzqO&jbP%71=@)qlYc(9)@b@8i?~pt*{jENqjWvkl7_Rz=F-zQL1?SKQEg)Lht-Z__bk4Jn4NiTfLF^V$OsU(+XQRh zs8-8is6x6~e-EA}ySiMIJMw}Th~{q@8bI#iXor(k5|$eVs)(s4^Hv*z{8CfBqziY% z^Q(~&J}(x^|8~incj*ewQ?mW2)x#VTvrx&_ptbpzfDQ|UPWP1seYh86-l(+WDiOPL z7!H^E{FHbc#E(-G8*6UH#Q2zgftfsEYnH%q{T=$|I+63u%_LZ8gYet=VB9vZJ^}j*HCX@j<^ar}#_ot~?6+jPYYo4sl|@oJ8oBr^X^H?=@rv|w%6iBQr{d|lKW z9^mP5$B2ju-!@=e(n*R8I&xKoI;6Kzv9A*|KlS4k^EdOL{)ea~!~D&x?wXoypko8( zvk&M!Lh+Ty!1rBjpYr!Ce>$wLVQcT^*Sr5Lq{q*d;FnIPDb-cq_e#6gvb39ano~sk z=f5nc{bhD{TS6~?;!P75-F=z+d1*EMJJHZxo^&b`OF*OhnXlfGpBwwZ!b=Z)-GYc; z2$v1cn6KYSri*|&D)t2GPOFJHt!R#$;2P#jnhGpxvNve5My==jX1AyT-|a~K^~J>V z(Y|fF|KKfB?cr_Bj#l}h9nRY!uQT5OgB0$Ges{F^3WcS1;;bfe2#B10QmXKJxxwiQ zB+7~_2gfrh28=)wGv!f#4?u_ML|+nXDsH`67CCglmC>=pAqW1Z8~rC25)=TaP{n?x zn}1eKFt6_+Ms%dAJE=k~?5BN_@S+B?Vf3zTU%68n9FUu#Uu&Q;!W)B1%QbL93(e?6ya-lgOKyC3f2$Ic2#NDR zai%U2NyjrzMNkC5BPS07K{myv)(}YtcdZ({G8dXVF0}@R6Ym;m;8-zNQ?J`zgaYOq zEJDMv97OY)?6h*MAkp&pXKm$wNWahBr;BTYq?)cvlh#A(2E8|s&9FcF7?1iuEC!@< z5!5tT3d>&|g&>=`%r!*!cD(*3l0JB#PNnK|+fj_*_iKq-eU^vwJH9~8*F_yRk*6q= z=kaZ+6LCMO=)vv-49r|z^Ala@LC7c74{Epo#+TI{iQvEv%{X(U=F(R1mi^$UVKOdL!q&_&5I}Sc!?;Gk0VE~==g8NJH(gqZ%kiY^t4BR6S zQ6u@`;Vj1tYS5gVMQQ#?qr_aly5s$=bI|fpR&1LRbmGpi7{e!Z8jc7+RQ_J0qAA&{ zy*yBjS2c4%t#Ji?sgA}cWN`Udh<=753S6xO?M?F^9|`v{!xyIpp#Q~8$~wbQLEzeL z)@Yq+>Jg||^$H6Ukbr4yHrn~-76#|djj0ENq@!lnA|f1& zYE1pZBv6i#|3s%x9|ze+>WaRd-TIg(8gy^kqZr67r<0|jkW_bbzYup!e)vA{_4jtQ ztUd>Wyfo@@fPE1qu@uW=AcIb8MwmCLIR=0#bCD~PjQWQG9RNnFxX+&jLaWIq!f8B8 zZl@(%W>yqc?yJMcyG}jmymSyX$S8ResYA!h3aXkB0v*-5nU=)X2m1y#NM%SxuX=c@ z{D&Xu=v_YQJLxF-_u=mN!PE-o$&3!#X@Jx~xMDNX(w#OiiBHela799~av7@NW4b&0 zB7Bk7mU#SQ(74PfcmRic4cU%IR30_!K+zK+9w$`m--LF*okB{7cu8 z+IJL=u)Fd53lf$|m{ziG5+j|`J@NeT8u`TwX6nvNHAm?4-+dTu=xxzk6LS4=p2+7V zl;;B*;rE(ia zf7;|2`Ac(!TkeIb)MEzk#5N!vQ>oI-CT=!7hIXyUhLb|c?n?e z`Bl)7UIo$tx>U7!c^XT}HD@>=@k*(x&mWiHLd!Ord*ojWk?>ME3}raM1l*7AI~rym ziMp4xXjq=#;{1bu2LM&hdu|1wNg=Sxw|9*B9wi*IhUi*sK-|YN8aX~S;?1`RAx8CE z__ZJIkcdn}^u1r?d@E2+TG9?fu{?QY>|LGXwIx-{t@4oEi{J z->CkYKgliQ$e|sTS+Z!u<*UX$$jXwi%bp*X7H&9^uhR=a_SQ^-Yv)sxi%t z+8d|>h8}9SyKc5k*t53mzh?Z{Nq=*s<(PO(+YO#0a~k3!?$XfaGFQ%wQV=MLO@)p0 z`J+;u)Y1k2dCQ8k*vwjQVuU05Tr1Z7z2k-2_l@aNP=GPjF7qTuW4}Oc0-1L4^CooA z`_(VmBZ9Su{XSnku$_8m^56ba@A)JW-kNxQdA8(a%le-2bz0xRF61>`+99rSLhey* zL=MGAzHP}vXb$0{xI~6}2!~AWyvjTdKon@w2TF{?GCtiN*m3v+yKeK?y68(YN}V0? zJNB==sERreXknGbRzJKvY&>D)gw@*)7~c%7F|_Y0o_Kob#LKXceK`1bA20!2{~&%y zpD3MZQS0N&BGy8y>EZ9~`e2n`b@<*e!ANIx%gOx@w#5F~UKwhgN}N~Ez1fd9{*q3j zInrVSb59bcl2nD4TA8LdG>?y{wo@?2NPk+xN!C0_zo-O~Dwj~t=PxO(T#pqokC~XX zIImTUl0Dl3B|TR6yyhk8<#E{Msw8WO5JmL4(v{tHk$64x%-bX3 zCC7_{o+7J`S3E8+*CJjtA-V<$C&IYacCad7{NZrNfIFXx#h6;L`!DktQr$l^Lq3_T zEYvFBmVzUDR}Tp%iDI!gHMeOx`iOx&zyEIQ%U0 zJI?+IF}*2?UedspmIZ_pE}^os4ZIr7C|CFdeK1RA`a(~I*4k3u!Ct(4@~{@KhcK3t zF=8f|Dru@aP4m4Q%aC+mV^Y}x7dUsGJ=9=JwS^YS)47-Tp!J(eK4>Ft&V8^_3{fE4 zfW0x}^ACGy*=fQv!}9Y2YdMzoeuofmD7L+%X6h_0isV?XNrng<0kT14HXmUHUQU9} zt8$RQT112Wt%(8~;|9o9r0G!lTT{j@`S!!x*m1r|J0Y?T#7m{qp?Bm!;7iv~WIty| zpVK#xU?kC#WLCLBR=LDjvyN*=W!nMWWTUR{>>692mTjS89{B3EQ8CY{S7|)1h`07W zzH)18_Kt@=&&K51FC1Q3OSR{g!?4a4`Nwvm0zssVYFXx-u&A5&>#2eC0|4@}cZLR&B7+SG zw0W>bYdvUxb|fU2?F(3+up@kPZ5wY(WyJ}Q!Qada&I=*nH*6Mp<%4o+dGPO}FG&o! z^^F{4cU)iZs&ppvdkF`%z54+)>c0<`)*0=J#t-iVjU2Ks`TJ&MDnS6xWI057Mu@z# z3fMHuGE!FD6f5M-xg7@N0qjunZYKH5;u{jFkr`xAf7?qOmlp(9_+A-p1yYEu+`M}q zZjy>Xu|-Dr9T5Bz>&kya=op;J^M22pu)=Q}Pw7whzv+;e30xu$Oxp#yR^u*+swX3E zA^mT{s@9*QZRmC=rDwOg(hxUNPe(6<K|_H?-@{~$9{ ztj@3}qf^rBvH%o}kTtsBhTlr+u;3yYUj*BQY|3fX?WjELm*?JU{BUx0-#-RC_heA2 zAnMPRzr?$vwAJU&bp2Hye8ti7BOea^+YbKH_tUg1{(xE#eP#GijaSA?u8Mf00jStc zUhg*C4l#ZAQ3U#>(=lpi*oS-gD{wC|bKm>Gh>f#L2O>_%1yXYh%zZ0XHB6c(BYX zsFWof;$)}R#P@ii7JF-W@4vGAa?p+7OxtR6*5+@T#$}ej<2rGi?RT9*F!v81wbAam zcGxP-p(QT|pVam%=@2E7#sC#&*(?*N4YWJ*y+FS^s)<$_b`7b?PdZ45ME;oFl-A1@F+n#WR zM6Z2iZJHp8o$WZqBpOrL2^D z2l3rr*q46UTLTZfZ{4Hu%E|OoKap->U;gWY+2fEHhL_ia7f41XugdK>UdJ*@o>BC@ zq2ei;NkPXG-yL@)dcn6acT8+2J z?a=j%efY`6WlzSk+Oxt(n!4NCFvbB05M_Hz?eS%B*xR8AR6tbT_qcnS+lHlsVBRgW zP?}n^h)LU4)VG!pCDC_r#Y=W;!=Ln<<`_S|Jr}l)4hUr!?hE;#2`;tm1^sG7Fyjwx(HIl2{ANzGFNepWa_z^1o8{66ETc7 zK&lH=&2qXZ5VCjnl84ZOq+jXaU@6+6)E7KBu{B~YmyTrnHUVQIUbefjJlN3iLDS+AeK|M@ z8IsNS+d`xaM2Bx zyfd9c*l7L7)x#O&c#`tZ+_4yfZ*|pJkr)V-n!u&?vhnCC?oQK*|zJI?L3 z{%RYKC6LWBk81^5sPl*a#x@#Uj3pft<4pt!J77J_^Sq7a6q1Zy@$lj{l&(L*t3-vG zSj>cm8~7ikoV+0tjhO%vn}XE-xLY0&V4lS6WWFwIe?}% z4Q)xBwlnxUIMV$#ga%E`_r&Ne^|dUq!WyW6k)T6Pm?ajRE9|t-A3K?FoMU)QA5}Mb zsfYyn<-vq|DKBneghobj^_x6tx=eVo^lLqaYdg?ygYU5DKP*!Cf$^{eJ6)@OG)gfv zvLhk8X5l+P95tocnsNrWpkw#KLfuU!;?mclRqmkNF z>dBU5U=0iYYxZoP!DbZj%EQ{Uw96w=rN)ju&C0(~yPJ|i@eTUJC8PiqXLII^9y78& zQ3w03*GEjfk)1w}yBcgzDU?b~_@ge1mzqZ}*K(0adI+HdLK1vtZ)*#n=XP>*lywAxjpN8+Yo-Sk%Jm) z$kkgV9({vpStDG&9=zO1$2p@G8c%w)@jvt_K6SolAYQk21{X(O`0ns*Lp?X{&TO4- z6txceWJ7s=!HDgFe(7v0T{`sS*1m2G!eRgB23se-A|P3^W_ec1@|+VJ0X&)VdhATQ zzS(d`_ddDrLx40wDxm$Achi+2(_i7cDD4YK*2C0_Z5WPQ*Wo881c;H%55aWG5JtY0K-t!cljJnS=Kcu8S;ctor+AQ zkeZ{pZ5cly)XY(eT&KQY)Ani#r;wE2KhdL8l#5*k^TV!F#M(}S7ANfSN`R8*r^`F6 zvxAT3lIzm=z?cWlzxYtVq`Z#05I1i+?ux2~WvsjYwqet_9ZA~c2u%%u-x%NNkLz+a z8D$dR<*S)Q+J?y_Is~eiJBAK{yw%$XZ2BvPvKToRL4B(yI6R6RCB3Uj{+Lhv{;fSi zxHny5XOm^$jBT1YlpDGZU~`5Na+6-291^Y<{0V{ZKEC9GCathY!_1sKR1wzKQeLCg zfL1qI@8IT2%brH*wvm>!odL`?81ap>0%#(yK>>3GhY21&{YwUtm4fDPy8I0!|67&O zrlsjA%zJ8-EoWRw7| zp)D{Sl6uio|3=Db_xK+^BD{5a6$&`GsCxq0x3<>9Zb@u@XExY=;pIl{?(vRhhHCRY z6r@J4w1F_|7?GUOg%vu$ib-SQMTPK=k6DL3n-F3thie3^^oyf4!mQjlu1V3h*7wq= z4rMn1=m6bo+7;>PVLLy#wVUwTcYi|(X?81~2Vt}voOj77Ak!c5{9n#N!fw*9tVL2e z%|w_fKn>XC)3Lek@^=$K-(^3gOliNjXf@QmYox42>h6cjU&9HFp(a8CXgrsGq?0P@ zp5*oaF2pNc>I=m|xDA$v_nPo_&SwNNi8LLuFy|nJE>>cTRuj<>-*FI$9b||keEqpd z!b*%FY_qU08=AlBPeM+1{GZ%f<0fpqFhK==l*&z9r}j(bJ%vq)4$(#v|C)}-#&F*t zm2y%|fARhU4f&c6l6iH%bW>*;Cn?q~g5?d+vb@@k2gw_Vw3I=i7pt1(4U~rz{*OnY zB(hBclzWXb3m)-)!rkQx)7xU|?KmxYv5czh{P--2%DGW{0g6P5#d0j-wggA2Edn@IGERAt3W#C7Ka;g@l|g|df*-cmO_EHe!{L0F7Np z8%zy3P!*6Bv6Me6#ZsA|)iZ0?GN%>`#XmUs%KCnLT?qe$;}K1QNK z((Z_p=m)RVKZFw|8MzKlsxX?dI$sYlO>_jD5CS8K&Bw0b6t$qMPhna{QJ+YTN*mbH zQyHtV&u$~eZX8iAJ0-Y23^h>fJLq>p(tHE8l(5i-raM18Ksp%yfm(zZK60&3WmR`L zB=|}^_#uH{_Ae<(hs;vpdLDs{|J|{-ukCFS5pc0SQK#w4HvR(OMnu;ht@@h~UmJ1K z-rN2>2s*ct%MYd2^*D2p_|jb44@harTOap>p6S&~3;f|rNuJFrb*v=vbTborR5&*! z3ti~LV-5NY9PEOt#BptCt-LpUf?(*?`q)?i3cj7vHEcT^+YBp(&++WoBsQb&i+tH# zlR4}CG*FFISnJ)TI4!{Qjic3b2d@v+Q*6M0t__y&ANi%#W-kT|z5>R&D@JE})b;TV zE#BMMUpMyNQAHv}ynV{}NrEM%5!;cw#Q$(kjw_XsvSOxGn5}V{rb3|=M!_$!(Slbz z4vE>n4(=X4^KP1d@k<`;d$Tm0dYQn8rXkIBprO!yDEPM+OuG#qr~F1t;NP+=)k?-<0bbGm?r5$P~iVjQs9pi^%nSk+tFw6 zDs!$nnU=wGav<0v&;Asu)KhBz)S+IF1%WKuPXFtH;Pt-G0!F2JKM;}n)DiPs9aNp1 zG!$XFK^-#@iL`kikMWq(7m33_|6j@c_|>>zYu1u3oRMraSzF!2^2+1i4N)z(70&fP z?S5Yrg*Injx?@ju38uqldgg}=r>UbxT-t)$P&H$nM~zguGx;ntR(_xctQ)8hbcUi?m((QC977YC)5FY!ih^t^ zrjx)RfLdnY*S*n4T27b8EVwp0JmPk}pNMe(8{J5Mg9RnPbVM0x6Sa+SOf;5`@$SNe z!1j}xgOjA_x$nasv>OC)W59ZlVxsw2v6>JcJ#M)~hbik2dc4zSQhVDs3Z*5Rp zK*+-h$KV9ddK*zB{i64%#_?w8Y|<;^ukn!K`KhCovueM&!O&cd8fF;-$FTLz28E}J z%7ArMLX3r_`0#ycY1bw(4pmi%VdRp&iY~T=xxFH;zRlb#EMODVmEQx=RP22HJ~*8LtCx$RiY@ zfsAjmfcv7~9wJ~*Qq8i7hd*%+Z7Z?spr9c_x!r+C#DU4{B2h5Lqhcfu0C*w)t?SC) zrBo+%P+sqg;qSw~Q2msx!{td>ZivXTuz$st>w$6=-snBV5IGr##ePjSICgyhi5#1d zp5qL4`!w?A|4x|BvvSNIL7RUtjZnh{wM(isfe;MIdNUZ5R?r>c71%(RX?QX?AUfla zA98Mak1{PwIzy1KMyVY*C?$i;ptz@W4U!KGNn7h#`p29Bc?VN5zB?>6O?S`SzRP^F zNb;`!_jaaB8I}i@h6>#eaQ|o>a7`8vPgph5;#fI2wX^Cc@s&9dwyAz>b1xnYO$d2+ ztzYzo9_;*COG(7lvxLD^uTK|@-f^+`ixa%8hc4A~5X@W59}}!@>Hb6|(RBBN3|1YT z!s?8N?vN&IZ#RkB*Hc4oV@3K_J@^Z-wW61*tlbq(pU2jMuXlxZ#3p=-pMqvIorC!E z?7+5G4ErTIjMJSMR#N!Z0Ob_mV6_eK%l_APhffoIQnxXsIoHm+qqKl=`_Gq(v;9VjcnTwP)n^ zU6Cn@(6~w0YaZEm=l)gEtv$$D-v2h|!XFc-b&olL8}d?P(F_f69AXcYZdkV5Osash z$ZO3wIu1$K-(s#zJS$jLmyT!X-4RLb%ScT!*`9TU4IvKRl@-z_P&Nss;p zIB)3_<7(gdo!&-yoEfGRx%W8^affb%1enn`RHiaLn`xQW(ScQE$@4Hjunk$T3VYUA zYws-drYN0r&3N-iOWcZ?brW>YA@KgKc5rOoETKq4H3iQ-xMEQhk8~6GKA7uRzf;~G zk;)LC^Z^VJeVY4^xN1-VDXxY1E$g-;hRXX&63OkWavf@=1fFtkrxw$r=OjXXd3=@K zND|j499p@myS_2X+5$L9f~)pokO?i=m2%sC-)q7MMvv*EmSd>EW1UU3)y!|Ns4TRmr6kxh|dL7=dNcy!{hIG-;Ub4aY^d!bo+wt=0f3L zo8cW^QuI)m92P;n!?qP`6tNYOM?BlQERXK9to&u`p{Y=j|_@0B#3>i@-v>V?tOLw5&W|0ywSdU z^QJV@URWB3mm0luzC-#o!5ZRs=-_>?i;Ls>)(;ycJ3R~47Q@v}TQ@`%QC1D*j(&w+ z#j4Oar5_|aU|QinFUm-B{RQ^`785SH?5n$hiQTEXU^Fw%$T3A ze+$3^KY86;=ioz?fXBh_MUz^r5yv2Exi@!~AZk*nR}hEXIhm$CF6wUS;loEy;M-D% zsbdb4F*abEG)lR`wKhscOi!RDLt#S#^w?wGL8~xqd(6QcYS|fjOd3 z&C#GSJ_mI8j@acq*I145 z0KxSetfg%#XvXk5)%iI9-Ig7FVK{ZVOK=zX(6D~Sl;09{Y-!`=1b*FM7aW^~lDL-= z(CZHAS0zjv>RMcPaSw|cICA3x@p5kIjiDPS0$k60*Sl(^rs8nbL?EH9WZrcydBC%q zI`Dg->c*c7n<+0y2XC~D+N^WXpy(mO@cA3XqmsorCyXp)>*YG781Vz8J@)ao3CG^D za)(o{`u^mdddgnC@kb8c+;_*`gA33`X-H(}8ld;3sS<*2uJ~D43^RYNi)EL;{X$IQ z1=+7qZtRcj7l{P=RBgSdH4GHq$PD>g{aAp|3vL)X&U^XpBv&Ii>f_s@X+p$`+|pf} z$d_EYdT_Q!r3ku^7P4a55nXLJ;q_!Y(g*)*o%ODwM=3aDnH<}&%Osv|t98*lqWTqB zFdJJxIENk4Zu%7d?NNI&Ve%WS=S{)@p!WOPZBB}I=1FY2IGuO#^No(%cTmX1@CL_; zU4_z(x}QN8-YVXkdj6WM^ZScwUi%l7!x{YakFQr%Kb`49yQ`*vwC2(a1$GgM+uAF9nNb0fT=E5bH;!~|{0i?P9rnT7!z&u|v)%lQ>)9T8&V_dc z`S%IXbL%bI{;DbZITsP9*57kZqg#4sH-wT5>z8NKnNapk06uG>62cQZSt zdBi$I^m%1tWUve!4PA%TG)C?xJjq*u29!8xx~au(APzGww@>oyY+jd|_6OQFg0x13 z3u=KqoT0)#?u^>~EO!=)IG<<#sQ=|NzWk2r4~bs%d#63HlopAWbCuv!wI8-x42Sq( zCY>j5e~H+0HGE(eJeR0~)l7L)(bCy%21Qym)`XGIt6|zV*q9Bh-n>DI)P-u~eQ#70!^f3;-S9SD9*G)3`-C57EGn(o4q!${Z6K}xg(x2% zyd0^x1u7^n?VlDQkCOm$0t;9a{90$VRk)(wQ&4@^t!)S@BfWbH{O>lpxX5dY15VhC zBz4~M0qvMRgXyVAv1Oou8cgIrgcq>FSCJQ`#w04yx_2lZGfg@P`u9-_TR@}XaC63` zPVo0Njf4@~6M~*ftnR&R@hjYYhL}p3Imb`pj|8g3-h>#@D_JcXl@G#`XQJdOu0;;jo2gNNA-9p;vegfmwm%WyoW@2u5&ofrS5TKmI{!SqD*s&|CKga?sql8& zzkB9}Yut8hQE#378en0%u4ZcWLknp1KtQ>T@!sh@Bx0$w(cyP&NZEsdJ78OegYL+< zoqxhR2J=2dak z7s;e^B3(zXo$j?2v6h$ST{~-voL;TtS{V(x#hxP*5@OK-}OxSy?>l%+;gyPR0 zc+&9qO+U#d+e;9h_klSkfzFZEP0pNu7@F)>U?b+$v+RqGnC{RF@E0RZ z(FK+32n8vn0#oDtbGO)d?xtkTVxXo!{=t0iv;9uqz0swYY_GrrRybdNwT-%|?(mNm zsvEV|A@17JrL)(}a$nPkgQ(|~fjXXyGnSL{3{P_+)Z+5e#&82CG8MuBBd2c-X zF9#goNZ5-P_>uahpn~esCfiLOu1E>k$^>ObF8{B?Fq&a|C%`Br?ThJ4YrNeh$VUw{ z(usc>j500bT*q)tpZ)$1N%6_h2-rx6Dr<{fVr;v$bf%1`&?7H=>0H3SQ)|b-bN}cq z{f8lK=P}K@NI7=fTZtdS|2#E-8>XSw0l!4bfP+nYezQV%PS$|fWCOE$NmEC~9uq65 zMWO^cTHerqk93>>OJC_S|Jb;nP<)-g z&sh9H-6QVh!0QXZ6QCnzX}0zfp4`a2uBH!xQGwy85lzOa&Ux6qwvkN9utP?w2f}{Y zjd0T8Vleo$js@)1T%UTEz<<29& zV*mp5olyrH-Z3&u>^yMN;dZRAD2-YMy_VMG1* zjz!NGXS6+{B4u5hKP3M>UggAls}y)w5~?y**3$pV*iZ89xA!3=&ERC4*OD?-ZrS1e z7)037%VlwcvWq(<;C4&K1#i2Fg2pUwf>k)sQu3XJpS@o2iSB?~?e;YWY|aUi|1%4E zGGkpsyl+++ptNLj-J4 zFQ?SmwzPh7aGXG!zW5EYgS}$4(xyI>KtADa#&*2ecbpjU5|;YE^YFYqWwDsf9Hv2u z^i_~e{*vPTUbnyFf)8?$!U?|Z+4??HAqGTqCCc9nwu}#P1$V5zL{}8D1i3}Vi->D| zFMkV4B0F>8R-oj z$({ux+&&Gyncy*qqpy8-a>n=7?3Ke1L(D>~#viYR-K}`H@oS8d=Oj3a=ckRt--L2p z@1b2@vGCb$8p!&uZViX{Z4Q!SRxWq({C)6Jql43@`1kB8U#)$lb5ttJMJj15{C(sS z^JH?BxHH%`_6kDjtg1S6~rOCT94p|}C?Bnj8_iKOSf;hPbFYl{lX5O;=X7-qs*a#0a_Pj?ZV}!c{i|m#Khi6fOSF4<`W)*>bd7d!Y{XX-{JkJItD^D1?0o!5`f0a)(%O^TkaDjVN^&e4vHE>V*G#mx zS~5CJTqmw1N(`w~kGj<7JP3d$A4*z-X;U{o-> z#GzO*lyzJ*&V$MMq?br`jNQ}krgo=5rBt8ag1E?Kr4)VOJB-G9CL7S1Ybq!u!M=ee z1;;D-s40cnHwKN3Lbi(OMsPem8a|p`qvjJS=mfJ|et1c&Gt|I+4`_Qud))@Omz?y2 zO(sEoF+Y6H|LNM7fnTt``-X=PbSOb)`8ooc++iawSmmypzNZ*2h{u;-R-{P3?Mw2i zTxCZc|Bdo(gh$|$#3EcW@5sY@Y68h+DYnTZs{Mf$ zzjO3@{rrO)oPE6PaPZ^v69b8x$PB~9)&x$;cz zD)qjXv4sDO`3m3##^t(m3^fVAO7%Z;8@891ri2rtel5_8*vt6rZ*=gT_k)T)6%4Ta znQ0a%^lMo~JN*U7O3zGNr?$fcS-Hb`z75#QDf)F|!-{|B?@BIHnK3KXO0jvNx9(as(7#U6t+92`D zLw5l|uT#gbK)NHWqTgj~9yUS#aA+&BblTHjk)QDtlhtHdGjui=@`3ME)KVOp66AB= zimXJeFX?wGB>vSB zOfa;L3*YySs_<2hFJCK>g^%`e7%;y4uLEX37;cG1z4M6)_?c6xt5hZi6~!2e`C<0R zoD)&s7O!%} znK&x<%N&z-Jr8#f}za8%XtB}3J6WeTB(+&V!%04 zxuPY&)tqw^>`%r%N}!{I?#4`se7o~PE;~S~<|?37&6*o|A5?L?Q9Djzz+-^p2>o(d zO7V}0<23uow(X_~^kXXP;DS*8&guC0!+9lxxYymGJJ+cWcL#N-Krj<`W9+IajYD`$ z-t>kevhr$JzbFVRpIPh#6N~mm4xAbc7SQrT%TnJLaf-D%&-r)DaQG}M^5E3626tO2 zpO@5CoE`*6$>qC78<>JG+cz=yv1Lqz31s6N*MRJ*gdn)2*Rvd&z!rtRuIWLQ4#@F$ z<}O^xUvnb439stYkwAgATjpzO72@D8PRYS3g?NDtHzE9B=cSUFNPm-n3Fg`iejKRSf8grUO6k;%e!cu+ zU)+EdJDFAe`_^r)_=ffJwAWyD&FSD4)nJ5<)lGpoO@s$;EiW;gY7|oYGt2!wb5wKz z7R2a=DffN{qrTC(FU3deVseVRLF*gGfZ+1z%4^Vju3u^v*5zC7h_YJK>Kx;`32vY- zu){K8R#v{+!5Rr%dl_FmT z8X+G0;M0+D-vszlma&%TH^F3ShbHa_+(l-u#8KO8Y4v9P`gvi`+6MP^4U(&G%HvF2 z-?MK~!X^q8ExMoua}_OSC?j(OWiG$L;Ei*yO*^Eg^ip=jX$~wbm=3>m z5>UT;6||Nw@vL~ze2)(VFf^A3PGWgG(*YSs(eU4@q>JQ3kxVO+)YPRT&`<453)I-| z(=YbZWc%)aG41ZR`Bl0SmZfillR8;noHlsx&;izr|;eT|W;pYkTD zIsLn9<0@B|U1mSFS8#od8AJ~u8%6Fjgx~di{&bbqI$2=)#AD+rb>Gi5!V0y04|#Xw zenXT~8EA+kv$rXUM)*{S^0_$(;uo%QT&5il%p|XaE_5~zk&f-J^JKvCZ>t|(W11IE z6Dlr?5pG{+>3PgORk!#l_(*4X%=xwqfGZDO9Zr|XczDc(C6#~}IyE5ikgYN0^rL@^ zQ`B&54|7880NH~-{C&W-n@d(yS=l$c&f}%lRlCVviy^dIBYMG-=18>9qXn;fcxl^ zj+g-L1epOD<3;ct(8>pd8L!^F`2&1R+07bDx&wFT)ta+^u~nk!Q49z1)wq?(4i?$& zn#_%fS)HPi%G9^~C;l1-+B{;{s&8CHXx#3Xu>o@#>iw(u$-WPYK zj8WX73fDoZMe+Q@1ksqZBi?C?YtHrn$5?d0!0KCufLry%9_ifC8i&WJe4tr ztXJtY2ghOba~i+H6=4Yt8P6~6$ysTud2w;t{5U!X^SYOk%0#o>{-8T4 zy4d|}Ksq=M{}e7pA3lNfqP}CFiI;E}27yA4Zvi&!96HIZ;v&dReyyT+Yi-<-(%zt1 zr9ph*D+SDwO~l%C>JBIOUgaD|*>(kp0<&p_>8b1o%b)+$c{r^hA4TK_YM6yf58LCN z#Mcc`mA1ybhY_1k7WB2q^sk5h@*fKX=Zjk0dKH8IW!H~oNl{G*=P+w_D6mY!2*re22a!tZ~&f7 zD?lx`*!q8{SA+vl$f$S3=5%>Ed}t3l-_9haD|C2R?KLf#AlRxhjjX!y_ow4ajM7@M zZTaD`>s;c*Kd>{A?V;bXF=B(Zc~d$U=+U7qEi5l>qtHK3^e=AGaN_y~Z?rx5n&PWBk@@frHM~dRMM8IAhOYbekIY z=G#G1Zy)=Df&T!L6|nK~Gj^+q1OU`o@C5UlEc&kw-_XIpk{z|_j9!1xEUlu8t0nJj_a-WfqT@igxMCA2K*t z6SHTa=`&*7Ztd3&0-kIt_lfz zYK#995lemrKXjYoz2X5W02872V0oaWb#F+SvHlO^U)#5EIK$TMd+6Q<6gdDGOVgZo zhA9yPYyDti#PhWXhKlfOv2o;NcoOY8BMy$NMv=?;pMu_!Gu8FK8@FzoqgxwLeccC^ zP5vx<+#;IvpOw35Xj|3Y3D<2w<;UIDvk5XSC3TAR!!Nh}URH3|Nq{DhZN44Xz3_6w zTg`7r_^oPQxBi;++YhDVB4R6kBn_tHK`DBP?pbhrGFvB|XR4cP_t4yDcM(>?RatuQ z?yKPDRGq{0e-;$8dt@yJk97GoH{X>5?wm+S(>EC)?^&T~9gipZ;QyIYIv(G+;vc;? zH+ki`t|j0Ue|Gu#56fu(FD$|1;6LXPd-?>bZJ7~86Oo4#AScZJ40n`h>2A1RGmG4Y z;Iy4B^7V;~+6$IPiT<_EI{o@Z{Pg0BRU+uB3ozk6-R+*Bu2$Sqnuxosk^lH6hkqXI z;*c+Of>Ou0y!+=mOzCA-UDDVgXtDxw5lPd^sH@eWoZdN+6EX8iII+I?=9t=oY8`*? zsdRqKo8m1b;VY&xbv|wxj4Fdbo)?yxSuMC$e0m%U_Jk6&sh?_8AfY)Hq^`PGE;^89 zx6T`G?Y!>7*VyK-J|djzjQhrUY923t0{!xn8(vgP$zVidB)og_H2-z4>ZhXKXxV=M zM=Y(vrzU^yOl|f?%kMLkP*#_azWJSFb}IftJ@iQ^$oefcu5ByHQmVgW;Z#CsR&Tq7 z?5qK#-9kPv9g*$(`i`3V*h(C$uE8=5srOM6^SRzFtIxV)r`1;%l&LkB%Qf&UGG_&L zo{HWgBpELCbzQDeTJInbIIGH1cy=XXI#x0kQ-l0= zFREUZ1}k0F-{xcw9$)`K2fXKaDqui1TWve!bl$S!O@8v4#2bTz|9ZgAGN*fG0ESLevUOj)#aZ z-M;K*n4&-VyK`%3Ymj?Z{-X>Ydse=q`4Oazcit}E$fY@K=2-q48T{OE{G1zNnIP+%Ggr{+*7m5vQ2{`r{x5*2ILR?Fv2}0{4aWD zH=8HTY#OW-1%Q2mS9epHmBA2o-N@ki@qi?)31!|X&%H%h@~vSF?R$eXT~bHqIr_a+ z{85!YcUEC%fk}=~Zx+=O(EB^|y@n1ZWS&FRCOmL3#mxNfCj_`E!wggLFI6gxv8HPA zPiI+lwfKlxWgzg6f=t~n$5_mTduZLUyryR(*5P+0L0s8BuvVKDK=SbHUrV~K0 zlb{{`usFd`4lCos?K+Ir@QJLC9dLNN22Cld-_z-0t#LI%B%$Nc{E_Pj z^^Gq{ua;VQ<&IYt)+(bO?_7ASrg4rS+eJ^@)HqFoVv+RyWJ%v+H^caMO2 z-)|DrKwhVJXuSaaqde9UQr?`)+BV6V&iTN@`d40|nrXQwMMhmGW9EqemHH`7(`PY+%DD-kUzTC%{H|EVSNwea<`a=^-{q6oV(|a4N+9rXzCj| zcYBoiKTD4F;D{3O``n@2+^SQ5lt4rCxq&mv{NMGGof?AQFB1O}kYa|vln^q^iITsP zh-dfP!p&=eC^=b4nS{9?SQ8y>l}FIj^*#*KN1<(}EsY+&)etC62yh!B)DSztCqVrR z8u7*_us?;N*axQ<%!fWbkhIM{c6NK0=qsUfffYLbiObA`ooRzVSwYaPsoz)IsDFJu zBaZ#S+F}m<8m}MkjMP*Tv|O%rS4b4N$$vfpxSc4-S^&$R$!~qZWlp_7F4s|f^X-Lv zXLJI4Z~z|ld;3B6mj8g~8IrzbSo9KJ&Rx70tGA#9gS_P03Cp->nP!0Ti1?a8E*qnN z*^;)#nOjlpMN=T2cP?Tvl!O#VI1DfUwCca^%C0S8cfCw+nqW@S56YUfgb6v!wMUMM za8wNV{g?N5Q5oHrE!+RY&i`Ri$A7uf|In?2N>1~K#uBDArX?40c|A!4)v)i-s&Gj2 zORh-1f^azcjWH}zOdx0G7r(|s1A$U0d(GvroV0&Q-+z+ zu9$!kGPL{u!&75eG1j=+Tt{7)z*&ug$FvCyGYoLnv;ipi!+}}%1k}6%Ur${%@s`-l5aI0Rkm`6 ze{WmA*LcKV{ebxr(WeYEqp26+vyeGRXwKT=M}94Wp&&FMbkU}Xx<9=z!p!?@S3U*f7YD&dEo=*?dNx^#!1{^ z!p(FYg`qU<@vB)8Pgb>;wQhl9Fko#=bHsSA>G3~l;w%SEyeHeJz?8P2mJU`NYRdGm zHEn5nx*S-Q^NlN83wohX38bno!L{+)prk{`Pga}5B&uyRHurwQ;6~dHn+arB1o+f@5091l?ak>%IL*_9w}`+L4&VENYLbn zXQ-e0ivPSYslI?IV;#I`dST_XUp(5YXnX%S@brPE_p_W$M!8oJGm5opXZAvxUAlPs z@khG`4W`U+ zH6R^hyXFE_q#0#k@axZ@K-v=!oL^yODT`=1)%Bufq2fMhoF3Vcz4NZ&9g&)mLE%t& z)t^~406K12x)G{lw~Av@q`e0DP`0$!XZ{EN36_5DP0{K+b9U;ohWM&;MnXMZgW#NT zTVbe9d)l}l;7KT9XpLX-=Zd=NOn%Mh859NJ|EEHnRimY&xaI5V707Cd3-EL!E=ZSF ztm^!WL%;cK@Xr*4a@#DOJkom0Vq7?^#bp_NP8Qi@K|WWDY%W1Q_tw{|#RMq+q@ay6 zW%umxLcE8KB-sS}?}+CXeuo#Cxa_`DdszG_L)-4P@zk003H-uj|6FD|$D-t(qRV zh1VdtsZS_qy$66=z2to~J_{HIeg5y~x5vUKE)%rG$L%1Qs>!TvlE0hvaxcXnb6tp@ zUaGVurWUebQ;4?3|Di_Fe;82sANqT4L(u z-(ziYGFtwJ-v2{~{~^VWwI$VOTMA{xEPvF+aIXd3mIK4{8VnOOK!Y>MooOhaM&x|2 zt!}v%Qu>UBHec#!pV7*_c5+PS7w~cEx0MHZe=e^`w41eO51JOhs}AyRgM!Zm+AeHr zaiMxY<9i9$tTnj5Dn$-!2ISh_7}?X8Ud82J{(VcKR|E9>mYnD+UX;G$_2Kj3z+9ND z9KbIz)EYFAwekV~DCl|4&e15#6g95D}y%nfa%!9|o`PCwyh zJ@>(PQ=ZhvzD%FeL~~hg%a0`<+8b#Z>Yto*FG0Blj#Yq{`37wSaiC2%5-S1 zXhjpR-;grCYgvU**vn+@@P)>TCNOY64{nN*jmtt=L}|Q)?-7VzIt5LlVLyNGlHPkv#?M4>7TL*YN1{hlX2PkdFyBTWA1Jr^|ncYHPB{kUM|p=`ejd7 zYhzH1vZ1Vkp5w14OaFJu!hlJt&HXgv#*T)(htCWzuY#O_il;(7ynps;}DW-7E#rb z+j^k)RAE7j`m%he{2_gVzQU{axZdYMXH$l_=W~#=4&j+P{}=;7O|z_*Pl?;jZ7lnz zM0QgfYy93bbmk7RgRS_ELGLeN=-Oh{o&gmnh?OM_`m0};`f+&+*e;gX0(12g7iiN< z@`3z%_Pu!ech2|5d=uocIfBWq@8>8wQA|VIxI=&!IZr;|te|1NoVbHk16!UH9;bE4u>71L!*O#eRF*!_TOBB;s?Ib7SHn(DP7xCHU-$8W5+U}#*-?B`lc5X3J`+!@~hozBi5w`1|UiD|onYK^3~ftG(FMm~$OMCagA%O=Z0+tDD{`U`b8e1oY{7<(+N64{l#x|H3^ ztk)@T4q_>V<+#i>K#|5>X<_OBB>I0%l@}=1cs*huF-othY1MvjoB{0a zc6R@RZ*@I8VMY|;TWe6sZP_gh^C7Y8?l#B>M0qTc$jhfKCg@^;X9a>!Aj2+mzFiU* zsN%idnYfuuG$CePcoKr3H`96&bWww}q7OmamLyc&Z{p3G{)D?!?B8bN3w)WZ2Y0FC zhN$j;6`?9&2 z3vNM}y3!y-WFPCuWR(Ec7a^(5z>R0A1gL!O=b#Nchy$x0W1|xRaqp)uAIdoVGMZ1Y zY8nENm_Z%Izd~+Ht<|bH*-}FaWK0uxT6Kr8oBwoQlcHNr{=p#hg&i60bw8#bM0UQo z;P&bH4~z;xXcdaL;+&scvBJLdcIPx&anL`}d(ZRc+a6B#U5^$Gcv>fL!eYlLXa>iZ z$Nyg{=w+1GH)Q$nHK_TYkGXX})|cfPlLkv1$OVr-fgjl3u-(cfKl)*3B)#)cf*LoP zGq?)KKvnX@`--*Tqluj_EL*e`YNBgefC=*nyuT|8gVWQDO=<`o*{Zi_#V>14-43-2 zeIO9jG3<68~ksydK#0qSsx}RdngvOG7oY6B^@) z7Z>4?5Rfq!BbZnTe&#o5VkQMS$ijHS#+UR+o}Y-D@T!HnA89xr2j1-(+ppn`+r!he zkgb;XZo6|c&aBgj@Z;SwDmjyC=X1DLzxf{@cxDrIlrxRGFTl^B=gjZZ=4(QZVMz|e zyc{XodznRmE5vny6G)yh&@syP$(SOmv@c0`_xcVpEOce*MWKSOG>a}KIrBcUyth;d z0k$Cza?pct)U5gUJygltev&eSzr=HWWFFX3@JfB;l+3+{UJ7fqOVz_!%|d<|N*1p@f@ zh$8}j0&$$ptAQgb@ZdG(|55?C1nd)D})~ml+&T%bXS}AiTQT zuOKG--;igdOkvT6aP{(E@|;&B6rz-J5x`cWA`7Ri;5@kZLr+4LpyexM{Cl8)V@GUo zL*3!(3&a>wo>}D)t-i&4tqqSd&~fBeTp|*Uc<;c-w+iGxjNK{0W=f)Eshv}{A#@Rq zIlDXG%WOaPt@l0z6}lQNG_9I`Ty1%m2rr)t(j+CY$VM(*e47p$sK%`{^gfG~88fA0 zsNn>r9|;^9SrJ}W?X4;AL40L%3bz2hh)D)~>rNT-Vmw2#9Iu9`0V9vA+lQ;E= zvx5{HRLBlHeuIK_fpuLdc4F3gHji>yn{a)yVe_q}T-LR(xM`UXMTyD2{gCy|t|>Hp zmFk_PpGSOUPK+5mTL#VtbbC#(8Z3maAd|ahg5a+`&~JAS+HMcSOaV&cZ6 z5t}p2F&b_kqvwV1rhITK%-@!13+V}aZhM1R?y*IyxwoVBs&b8}zK&Sds*t)(W-6EA z(cG*>pNt6vHV@hnD{v%QS=0#b%+#g~*>M&f3B&2O1mMr49vZsPwR?G++1@zjoY=_i z+$!5DeK`mtC2(8uUxt5C2N+c6UY;`R||Eq zETO+knXrCjUJdM^s8Zi|x7~NWCcU#SP zE<UC`I?(H(6JQZQm) z79B@53E(+x84HG1UffsG`PDV#EQ#(^a3qcb>!(ly9Eu{7bVD$wrwI1|Y=_D+&}(^yX}QvKs4;9p^Na7pD2Jtx zzY%#u<=hft_u%F#B=8EH z#Di^(OHcuuKo;K1QDzj@F$hEFx7jXHe8?977iK@Vwy~T8(dBjcwc60}#BPBj0d$W) z3X6*5Zv)w{rULl)IaM2=E?4>6u~?OCA095PGKrMq4WFsX*7zjw4|lt%TeSfQx#WG^ zs<+FjQs%>)=mel7IR8lygljcq2REXVBFd*^kUyE)_xUM&AD+i2TcEx@nd3Qqdo(%8 z5{t@k`wD+b=T!0jcBKl4avkoZ}qE& z^~zL1j~Om8>#3oF{7c1=fYak+pU>9fOGEDVw~faQKlSp4&*sW-T7PskiWhG{j(g7H zObyG|Hf3}_X3ZnTtyq_ZywYz0Z*zF2d{h)=i5f8xmo zqVnmZ5Q7^auEh{y_FCk}QQEGAC#GRL+p(kKpb+i_p2^6t2_zU4z60B`qbQ!^35}w3 zjW=9BnHtUIRuX+#+L(r_@T}EgH|L}agR9e#d!#|ICb+x=^YP5uc zDHoZ*EbedX+_5LLtcy~c{vkoNetmJERSe1Vt^zEg9cbl^NC7Gp*Ae8!&e=&?Gn;K& zZ~92rUs7_0D3oTyzXDU;x?OP`MY88%bdE?FV{vKHwYM{bQ2u%FdnBmA*D#cyK)I|MqCX~OeJ7=Rs|CpE`m~mo zAtC`**HQbx8~Ig46qsy#R*dIYF!Rr2>uv9Ic=;8@E4BW)EUbvO z@TzHok0-I2FaNA3gl~a{D9i27u-F!h0!r9s(1hVJ_$wP+nD4gbG#2*F zw<*?&YE2-6CWyC4MIjztK=}Ae5kP`!QzX1#TWt{UZIUvc$49T5FGZmBKM|K6MB^wx z-g^>jxg#7Oc3rPqHMp4fY6qS+{M0?5a>I}EC6Yp#LELGSKO08R?`Q5-^A28V`i_X< z*mcB||K{swFJ^9LRf){)vB!JHgaqVnf9~Y@&>RXw+CtX!9;li6BSP=9y|i9G~$F*N_^sf#ooc3o#z?mHy^+$ z&!nTyH5c;S7M*6o>S+=T8C=jPZ#eUW1_?N&6b_oviK|INR|}Nh@EIM0tD%bhzkbmB zS5LHst&C6As52}D!`>mTN_vzM3ZwKTLnnpi$T~mg5SKXKzTum&Jsk^2r!!?)eLD_6 zX6ySgi(j@g;^28>%6h2EHYR1m#fF*Hh9WoO&&zSL8Fq)T`=nuz61$URLnRdheelnCP#`h zO)+@O)$~aj%C%w$!h}(txlk(j{^CdW2BnW2c_`o+cHF^4{Z)_gVWL3oqw#oKQoo%d zzKesSot7cMQVY~d<`ll89vW}MHuEFzz`K;(medqE-weYsELqap_Ps;sWwkAxs_L|l zUoj%+k_D|)yB6lx@PgpPQGw-GM4AWRo*CK6{W#mMo?$_4Mlj}k29KbsOsW=GRZI8r zy?3xuU$!rmCRMHp>jkW@8M!i)YRl5*_sb32eUB8Jw}&DZBF4{LAHj<+Fg0;Toy;Tg zcr}O!wVat&jgTR$ZZCP5S{q``H)3V--OelN^un6gwq$z&<;_;k8dhuGT%fHAq7(vF zN#NObqp*%>nh{?Ncm z4J&;K;TMiUT;5)VQH?JYLmCsY(e87X`FusJiw#)!~DM057Q>h`hlLm`OV;9DgU zI;6HCH;QG`-GFA?p8Gu%-^M}PWvF}C>7g{nT zV$O~MSn|wEgQL>3nDM$nXr8CwD}i&4#A&4vA{N-$(RJ8Y#NAZ?#}2rtk?^~O=p3n# z--}(irL;TH8z`{n^=XHR`^CtVvTyewoCP=DE$0G&-InIf@Q9_@hUd&Y4Bgr^46+XBqJ(urFsLv3rV=uE2dPj7 z#42`uqmsr+o<2x>(}+bqTDvue7buX67p7Zzm!xF`PKmz zr0(K3ItJ(S7*JOytF5O7f~B*;seNB}W6c|P6G2O9N}kze>63SJ`oB|^G^7)VA_PiH zrx9p?;t&cIo+{?(aOAGrGOsLe;~NSnVt_ISW|rl{SqP>Xy|$Cb(;M4n`m}fmRPzZs zspC7G_f{O^XnIp&(e~!xcUh{Vc#KsxbA&fx@qbKx2|Sct^nZ~gA`z8r3CT{`%~+Fc zMTIP5DN923bxd}VrHEu1Wou)s*=Owg7P2$;u@45b&-};xzQ5o9_wkr{=6UXO?mg#x z&oX!J=N=boNPU3hPvmHjz3kD18`mh|%kkyI(4OZ?6PYVYJETytbodsMyo2LieAS2? zKSG}knDx}5t)1kt*;3tAq}7c|Nkll3+$doKNElxA4g`3dySX05PZ&lPKi&9A1xcmP z;~Ls+W+1PW5*D$Ys=N02Sms#MIdgCXcuQ1C?{Q%L2i3JHi{PW|=F#NCtuo+KM5^M^ zkM&^ewUu3{p9qriN*LPo5g2IQ;|NPiM=jxzjA-9qea^tfh5V} z<;|wl5*%;GXLlFpY%~9${1?HH`sIL)cSE9M6b*Hd>{?BA$V9Nv-ymVGWIwn?40!Cq zIS3BT-SL|T{r=uEc5V!<_#Nqby9H2T;~5BCayhyUa3qv3DQ-G;@Q9PPhV-_ujo0RE zA1J`FJ~w~t{ea&3fhh~-x4@Hk5PvET+2%+X&+jK~ZyD`NTAytd+TEOY)i8wXFYXtY6{&@+f`#b;+3kkZ#xmjjH> z-rnjR_|S`N&%aHdf_E=Ub^-LtG2JEusXuc1zQRp@tx3XJ7lIz6uzz$&LV#l2-w@YM z%CB*rztBW{GM{4kP_pn^8w5i!TQ% z$c>Y}5UOb$f$;u^;13BLliHu{k6- zo;#O!j(;A)x|(@42VwD;sJ2{RxNDYny@~B@^^j69aGCTs$a>o18kMK@(v<&rPT>LK z4n;9aSk}nE0X!u$o<(hHHFnUJDBgoWTdC?X7wn2FIsMOCxd0+#Ra2?N^IQ&i66_6i zz+M{CtgLnEnv6V~aP(?YLOes{>F^$Aru z<$u4%U}_rn8iPKwvw@KC~|tAMubXyqu%ew z<}=r3jg^_8ozB#H@JzTb*SlNSByREj*{s&9Hm~ZcntPTwp4F6RQ_|FYB<)Q!m`3BE z3yj+@+(oD}gH*smwPGyQrjPn;5?Z%=fl{Mq)ipn+@UMV=n>Qp-=lZA~D2U{?dnvN3 zuOgWm!Y|zi5Q8+&FV+Xt?(&v~#BQCO*6rGqhGcBbuhLFEfD=2Yda`v5bnDp1#)8Mm zbq&H!!JeiP?}xnM9nN(Cc_XFk&>6E>1DcGm?yL1rOWpo`QTe$MOsUDCf}4FupHjMJ zqNy`2O3 z5!%7$c$FEMj8nBDP0k-<^+kZ!~3 zhUfvWqfiZyXwnI|eMnky8x8+lrtj*WMa#taq(t7`p4?q*-s7v{-z*px*;Eq8Q~G?ZXS+U6X#!p z*@ce~QzcWl2aQ9a-ziL>MJr`p_3F=AzZgB7Ljj-yWP{>ffjg)8LBGkjc;VjSven zJ7mk?^3hzEiYX+uCM4!ANFFFLVsKZ|U~IBy{4qzg$=#`-5W}k9<(lT_sA_XP%XQt) zZucp+J-bE3zS?pkKZk4QdK#r{NG%nFqTDPi)HDy7jW~k6Jh=MpK{9{f1LI6C6HK39 zNISX)XTB=Fo?ck8qMG4z^b*|l_Z>Dy;djCWvLk!YC?eHx3?B6K9h=P|k;ktW#qyJ9 z^>tQ1SqJhuKU6gZDpqtk@hd+%jl2y2e?Ek|Nl7iBW~_2B4zzAWKeHUJy-sSR`Oi*rbibWxT{XqT7I4X zag-{}v3l!HQ(xCna8}Wy`mh4fPmapMP=qA+QMz03+X+nmZ-%0uc%~zLtE+2W)}unM z-q*9j8t$h_BYo@49HnQD*K07LO@ribq^Y8t^N<^AaG!~{xZa1m)*J&fFN!K(sCsGv z4vb(2sYPwMo+^nGXs>LP+qJEspfbdLX=IvpkA+Ca5I(;A(XqoQnc=JLv%^>L>Q4@y ze~KHsl~V8gK}eUIL26qm(Uhye_X8`|Vd9R8Gi(*1VM~$~p0Y-(%fUH0o#eA2AH~A^ zuv0Z(vT0>T0kq=SP439Zqu1O7qo%5@q-Ux3J>wiRZr5CgdUWxPZk|aTatty23iOeS zFE&DCqaZ&V*?he4H}t+pwSui7Ac06mKLsWg|?mw0X z9RE~`+DD@9S4eL6Oezd=<5`2V@{`j7UY`$QOr|Q$4^db04&V!ul9-G(|11|E9mU}8pT^1fpz_NE-*->1hF1C=% zMO80p}kO$L|3Jg$1_1%gvR1Radb7F zE21^#mp;(8oT+@l85eYWNCCs~Ob?olHyr7G(J)fWyL5jf2IJ)wT60sf3>t`u{R+D2 zx{PHvS-`Bvd6+#+68n~+#xpQs){h3??sWZ7*P$(UlxhlI=XJ1gX%AJua3pu(Xh~sI z1zNB(C9-5R61K3sVwnr?hQwh;O-GpVL)Mf&>(3Ck;{-}dfqEC-ycB)>x!XAce@!`A z^b?3=8s*kb8jjol8|U{T!d(pQIm%HiNFFHiDM|<%kH8n}mNIg8m=R|`S_mG6xAPiq zqi-AD8Jgo#q$dtM#yGMafc3vl7;f}Crj?qHw_TAk0|zbw*^X*19@Q}uyRRh@P-^!u zIow+zaHB)y{2a5pBRmmlix_?Q)V=id+_lCt<+UEZ(h$k zj?g%g?#0|=MNFzlrY`ln;Y*!*#{QR-#5DQi;1T1dkN~5DQ~b_G`XxL5viy{ks>DBl zBK95L7C=zeFD&wKvhx=7E(<3Ag$fi}y8Zr*k6wKAh*9-J)fdlh<=S(_J6A;$hFq9G zB9lXRb*Vm9-yrC+KS6HiNyQc}O;c|vm#X6TWyO?TcCI>YH?BO(x)mVcb!|K`??@F+ zwa!+fKj17tRX~H#^rQW!-sN~kTNCiF4kt!r*B<6u-OS5*>A+y3 zXhK*$Gx3phuR7aCpyXrV3lYDhX)~!~?DzFz=0!c?wr1lW7aOsP;oyqMw_a9h-VgKr zx|0dw+GKaFKo#z$PZbPD*3rR36Y)S!;?~U_pk^l}_XF(iuNT{?X*UOW?fPfsL4!Y` z1+TQ>ZWpOi?I1RAQ}lsVa^TM=kUO4>7Ns*|Z-i3R`zVKyyP|l2d*Pk%=Q>d0RoyN+$0)&0dv1Lu> z#Ei&qCJ7&pF-!tGh?hxyqdSdAaIkg!lR{)N3LU#lo0zNvIe0P;ZZPF_JlGd~Gjrz} zb>nwUExBTz6a6F`)e~%}TWcuZS@>}?nM4_BIES&$4Woy_I_IlO!Q&xSPX-#Q00V8x z&+R!wBEogP7P85H8M?Vuxuv6Gv}SFaOi#R6sRXP~e6A^&5CoBM9z6x{P-1%n!oLN+ zajb)8`4HW8Jg;q_A|3c|jI(L7BL&)h%W9n;f@(8@aN*}5$JXrg?!4;eQ9f1)j2|ez9#qB*5IAR>ww?cR&5^ET6RwtoiRGt{jhzaTa8JH4BQ_xC2TW|E~6z;MzC` zGv+NBZOr^SN(sEwTK68I{{dTItfdxI|1GxI)HMv}xXIc_2LOUU)mwIk2vjHLj2bzD zyw$5~Cf*UXd6tQZQ55|HJ~uHWKZ0<(x@+qIEeFSJV&p&=xOsvcybKijKx@1JVblu1qtkLZbi2TK- zU{}zz`-&X_S`&J4YM_D4C^6!L12|qm6$d1M`AS5E7`HPP2UiP-3FP!8UjU4)d+a+D z{|H!kMX_*AeF>t0YK$Aw6Q+MK0HtcrL$f-%T&f1F*}U<;Kzcn@o89uj8r zAtT`Li9SKLqqty!@hLsVv@Za~FMygnfUC{@EBBAm)nxP=6pd3+dBAx?)EA&3m+$0l z&{yA5a>}u2+cA6fM4akP#Vs_3jLD?0-0{p7orY8bsLHa^?&Bq)wkiP&PBz4>lq?B- zQg)8w>xko_&`zfd5`Rmqjn@%VD!-&1;o(^&RY|BRS8%CTL)Avjo*z{>7x~^BH0-3@ zCqBNfV2MCqcvU$JUo!1)xCv2v&9+u@(+#ejKJ)4-Nu>h>VmZyXwn~JOszmy-7;aGA2}Y=4N;@^J+qvAB*c?pe z0SrzQT%P$3CR#A=gLinX0jU|-+^RVjs5N=$z!qFHKicnHUe%sDCm2L!I2Mq?@?yt1@%VTQ9UF)RSliocy-!P?9M3>pNF_y!>|i=l0OW*=>Tpl1gswX;pat%Na$uU)&y=;e*S{^iLtnZ^eR8y%C< zTz%v@w+*J>Gwo#U;P}L2Pp026Trhh;XoUM^D2l)fb;v&`m~L+juna9SnuX>dKm7UABl>kY4Yr2bIdvd$3IX0I?yF9?5}waoeltv9oN-S-rx z?{pPWhGziDD1$Jmcm!PD=n2j~6B3`eIg^MP<$PVdyS!YgcQ3cUOZlqVtExex@;~63 znWDi7ijR(Zp%wr0C5oI?X)3pKZ8>7@JFsKM{xL$0oE!@H`M|S+b1xM6p?s8L6*j;3 z;^t!5t81I~F^1H|cdp-1uH8d-#?W_G5aXqXkCR6qdX7HigC!0|V^Ywr3Y#XE0|6N? z3Q-}AO$(YGu$Vojj+78)2lJTkB_~6h9?=2v{MJt<3KNynitl3+& zd&tv}G^Cvwc`L_0^1N5r!Hf%ePY9&@4XWTiY0K^r{`W}D5z9J#hD^659twa&Y+?6; zHm5Wbei0-dpmtt-rB;>KncCXfbj)lB^RezYS%zgd(pL1h4t);^#ECbqU}>9y1Flqc zqz8U)WIP=druZln#>H-8Bz#PHSBuwPl7nRP%@#hCU!2lcYa?<6jwHW432jEYMfe|zQ-%c+_>GwrJ8JncGf zP-aFoEE`q2;#BPYjD^+-suwSj#;0{=Yz5V9NP>VM7TW~|Al zyv(pX@aIo@9dNW?5TA!*Krc%DFQKv#bjb5n*#%kC-5B`u3M!#r9Y^pTNy#CQ-LCQ| zK7WtL-3`sTS`nLr)Sl%ZhNC_Uw)4cSY|Q(#s~@na&LIZNMw?J9swGyoD_P^=#j%0! zsl3Bv-5aJV*Te(v1r! z4M=_B-n5|b$mH*MUu~0=TdW@o2*DGmG>f&!F^NMlG4C9zl}I4NoY8BEWlYaj+okI~AMPA04t}X@4-pY#?Pp_+7i|$7q*sr1R(XwBzKF0J zaq0EN`N~4seC)z}ht=%7?5GUXKdk%AjNB~zJNIjtAPJG1;7{6VLMA4!<1o%GduO^5 zLP?TWcK?2BOidZmj|-rc&%S#guF&yB#((Rz;)s~SBS=mJ$wZsttn`i7N$IsoLLe%f znVph%Z)l5SFB?X49Lg@BXDiJiw^$o9B0_i4h)v9T+hbIr@kI8pc2vM{BYaqsSS+_v z+^ z^|rb+jpkxU!Ebo5F&@m($mqR>i($p^+zB@`Q}sT+tQNkSCY!c>! z)L_%we8M{N!29_6>OIJ3I%1X557nCx4(Ih zx+yedsa1sU*~tru0T6iiAPcHX9PaHIO*i;$3r6+0w^jlbq*=-8#)r#WdXhR#0}1)4 z5zNEE8|&nqquaSCoqMz^B*VAbzwKq=TM9efI2spLEQ{V+ceASe&F^!G!SXT-k~!zOFYU zT$HRo(LprEER7T*|2m#O5+lt9(xXTlq|gDpoHG;3Clpfg*+(AP<#}Bjiwj8na?F7Uib7sr8=sPP$GITBk*4pbNQ+Fi!@BFjtmJfk7vBv+*3pUtPlzqM;t z_{NX(*F@oUVP~-+hQ)iJzSkZ+)kw`MsBrF5b^Flj(QCYg0qNBI(D;<({j8*uymG=%-Wd?2BvJb(E+-@&R6)x@-7HAG|RU16Z! zl(gS)@cTq;q{ydsWpYP(>XIu}re(YrvrnGn%E?W2vP?$dugeYcCI<=f5p7mr?C90H zW!G$@_jqe{kI((6U>~8iIoJKi0L6nQ?YY=bqd|~B2kUg@R3C29!56QFy*uam%xB?9 zHSN+Z&8N84TtYR=s5?QFJwCbSr;<)dO4N(8Qbe59w7aY z@CHdPh~&|qq3g{j$qQ<4#~c}DL%q*-c}9eB9A@RgBH-r@!m1RfsTRy5V#N7b8f*Fc3 z+P_o!yM0vI!=O=R;%y+xFm9o-0Vy({Y@zby{LZt>Cg=dm?Ij)tWRcaj2|wpzO~V4`py0_xrpfTCeyhb|P)7wrs21nl2BiE?w4zQvtFOUf@&9^_P#IPGURF zRQYw(7};UM;cKD>bOWIDGoKkHnC`%YZ^j)nCmHGI;l*gTesV?`807`sVpufgZ~;7^ zT@~jb5CX@|4{L&_q-wJ3#re=S?V`Wq!mOi6fAjgLr{pD^Kjaj;ELGMhWI~EwqV|XG z?9fpx3ye_EpH){$mDYq;9{>Rlppqk^d8?SA+q9p!LLX-J0c%__c$DLGBB}CTLo@`C zFS!hDxC5lJxE7}V+P>^QcXL1NwK6qSd#3p)K#cyK7rpIeG5GcVMa75$H6p5V~5s9xUWrjAj3 zEAc9)|0v&&y)DqDU0I(SAZ4>MP?FGSG_E^ewEnfzV=Y(Y_kC$@zd>?HnXue1lbGoe z>E-gmsVI?A5eFUz)#T#4$Tbw9$&^|;rZ^o1nG`X7JE?P35o?_urcWN#cN^4OB=g>uU5(jk~uy{d$pq0lori6MOz6=I`x#= z%-KrW(nn+WX1Pi7mnOEVbdJ5O$6eJ*0@;r<1KIt}8_)5?bK7q%>rT?|->Atwv$$+@ z5m3nyHPm=!Q68v?lQ6uvTCc1*X8R~&-SgO^75F7M40pVYOd%ne)%ra zom1MTU`C08_o~q+VKi!9QSd=El{ja&8Xr6=V6Nz3C~~g-lfzr?eTda1>1F6~`%j#+ z*4GS(3P;DS`}z_q)ZLswNvie7Tc*+moOlTnPW)`zE$=|*uiYjZn?F}jkt6kzj}G@# za}@VfkV}o3T@Q0_c6oldj?hQ#Q;z*jm8sXKv=8g|dsk3K@saQ z&v9}9-Gp%j8NbgL(@iSkRQ_zLlc;PK1$oeG$mbjk^CMy6Pv4;YTty|F)*2N6!Uiq6 zLU4DlDw8n3Tb3}nEjI>hV&fpv*KPw~N{?vYeA07o-RoN8&{YFLZ?#JCiyRVT6CTd! z#SIm)e;o>yaj1`@7I?E$yRX~QyXR-@U3>kG9cp>t^Nyru5@y>DG}`Wzy)h`>`Bo{z zkP{l@ykhvkIaIV?#N=AbRW^~z0NCa2uFp5+uQV9%>8z!wMf+u_eLPC**R1uKGQu!O zKOcHvJGd##JjvHnw_VE+p;(57aa;E+gLJx~#jsP^TNpy!~e}Eh>17HNngs@OTd}_lIum*?=t^+#eV$xt8e#J(^B!?suTz->Zg2Qki?BS#rVcyqOy1$r1{1O zkQk$4Ji1RzxTeJKw075i(C34;;vECBo-TXT@{HB@8Vj+|Yb)1(?zu^NTlEalgW;Et z#CD2=ZKE)jVsj3Y*8zgg1#xY?`IoYDar)+Q{eH)DMeTX?yI>nYYK-9xRB~9-X&M9zp+#c4Zyo{j(gS18Wq`; zCT|(yYjpQ8qRRxeeC9Yf$}O%q_?!?zGR10P=#oq+M>q1l#_^r?%1b)6isR=#SI@tY zTKD0&WyAJdx|Jx9A@Y!Py8G`QEEW{`PP*yW=`cxCzGvff$|YI%1GW<_=b|WS71sx^ zmpElM@DLmo<7>)zR?QzqVKhP0i6hJ!r7 zF5c?hxc?O|c!6?t1Znl*G?fMC+ziy4&PZEn&ZQ4w-QKd(fq^BUNf5|J)FSdN4ZcNec@K~8=-em-!@Pge_LTpuhJ<*gU|1wPEl_6YR@fA z1m}eXpQExFoOwY$6hQb+$`>?MxBt~X%o0Ql(YChQybED%T@}b~U|f68XQ8(M5+J9N zPCA3wv;BbZlM)s|H^@Xh{V?MfSQ=q5O!E=sqZ~+zwob)w1l|IQ_1#P{<|S>tN5t?w zhS;|wqxJ^mNRbq$D9?L=@XYkpi4TuFds@-12%*eQ%V%;OsjMMS<<`X4Y3n-PFWMe4 z_Yxj-;vR5eCP(DhNSH;?CkX=ihaCT*upB9iaw$sMs0a@@6;fD5{R?6WIY)TbZZ5jR zkK3|i6CEW<1b(%kZKjxQxC|4{TvJWg3X5npG0;>m7*_Hvi1VxbDsdsqb+7LM`|1yA zA5C-wKvZ{SIRufn4HWy9%z4O<3pru8q>p(4bPA&RXNcKsIQimW>}z2;>*Q78J#J2N z9w+5Aj&T7bMrM?R>8N}>XC58;_v@_Ri08_I3hr+UjOp0P6$lQJKV*-Z2>v=Bd|nj^ zIc~4r(x=6ZJJ7;5X>Ed$ZSLs?X2L5Oy=hE3N+9<-jwwEPzge1JB86fuMHBRCQj@wE zq+?I~eb|JgbU28KMCt|=R!LjgGKC0l|5fj(B^X%dRKcullLLj$IqwP|Vx_n_@f>NZ zyU}1%>Fw0uM*z7m0h)vF7Xu`?(^ho@1Ek}T^a#2Q^M=M#8=TFEQxx0wEgDJ>shERH zlk~&p55UU@57xDZCnEet!t8>0mtc_~^(D5pf8c|Z@{EDVlcv0sVk6d;S4j0*566eR zCaJBtf;(Q~XQX+M%xbo#?OA@;kI=7hsQc7M;@$;FPJK&A9FUuW-;<{C_3Ks&W#U0E zArirj7mK0w466UCLx6ouBcG*c;+{M}NQ&RKheb7U(Y*f5nL0~?C+LsFGWh&2dgNJP zTH4WDT-E%yuK5Z+^Ygu4<2+kD+gC?&Yfbkm_A@_t&&5KS!=~(#4xweH4|f?Cp!ARc z&wkKJ$GaaHdMZi*3U3l!g@&qleWQ&i0r45%tSCBuD$ok+rt5XlxK7C41N zJm?MHjSP+fDSTq%>V7RL&iuSqLElpPoH+|Zz+z4>&9P_tS@#im*hIh$>;*dGbXe$P z@=YyppKAlj4D z38;zSMe|9M73|0A4)SY$dW7i)_IUcAsEN(@YvfzZvh%!0V8^+Bp9B@0ry^i}#W%>0 zRZy3UM#9?Jz^*^KyY$?$%)SF|4A&Hxs=ATI0D6!Qqk_(d#lDq!LoxGn{2NEy8{j$x zeuCB@M>Pai65GT?NT+-SFps;^rwpEAFLkg{p{>P|>YmCAIW=-sWA#u2%ErZ#N4m_~ zT+aq(Iy~L2S$2u=aRDpbgL9;#WoOnSUbzD_8*bI7so$k?8Z7cWKn0J| zMn}U_FlTp4{UQ>oMJFz|*+$?V6gJu0e6P|QXE=e;vuT8tx#UjImYY2+lC}lzo%;xm zamD)x`EkV-nC_;uE%L?@X2Pv&nX(zU&6vb}{Nad3ia1`}mfKU24y<@$h+Za7UX(4F2PV^ci75htmB-pM-1i0nj6tAxAi;P1Y1Wu!$ z8Xz!zKMRr9^%uD>$zkRnGgE^LCIrYC9~JLY8)z-{dfP@22O>T(-B9q8nCHkR${#F$ z&R$hAamqs)kX?Vq3ufF8+WaA~(#!H5fh_qEZJiPBBe&!l(5{8!?oHgqqu4P`Lm3_VvhH)?A;|&nE!?*X=2 zaD6K#-roZL<1|6$a9|jtU7a={I^t7*r#s>x*L<_4q*smoh^>M7__`~^?IU9_+aZG~ zmHeZX<2yLCjFv72yKcO#HHiWQ-XJ7anMjoY*olr&Y%S7JIJZTRC>bVxIa`T%JVKlG zI=#qq5%6x$KFU)I=d==gL0grzt@c`sU&yDjnvX>-xo1PpqBtDDJook+>;hVH6Ze$& zFwMK+>ioxagBL3C0M}3Ju&K)c9L+jzjG9>4+}=qQrz>N$hov2t|NI&I2*}jJr=?Q8 z_cJxj>}jk$Tig7Zkjg4h)#nR(>MUKM%Gs@jnlvSMzCIYbmUPgz8==m)s5TsuC;eug zv5Advsh#@`;1sxU3{+PiTziY^DXvu(YX{Q~z0me&zT4zVm_2Q0wB$q${Jp#!J=&2n zC#zMk{QZ6;=o)EcF+-Mal`q_j1;|bEE&z{j&azw7=-GuuKpDdrMm#Am`40i>26@uF zg1cKzPtMq}HQS2qh(C?ZW77o1lJ351Ze$3#;_rW{7kp{WyxTQp)TCAAbQ3M6uKQ@P zoj~x5^r?iFOETx4MpWC)={ta`U--4@kD;^jJkM6AdfA?-Y`HFjeg13<%BUa=5R zR}M{vW$zuvLY@|A51z8w8;Z%M5AJ+OI_ce^>0GCOp6H44WX&raz}>OH~a)Hr!g%wFTxdhy6h55xSt)zB+JWUL7<(=rweOu z@OGyy=*}8*9EB_t4ZD6qfAKs!wQ)tUIKQ!Y6tlw8Ej8&Q5F&ummiiyQh8YFTBLvso z1Y-piHJzlkCz?aKM|>88#4J`@!Hx=>jQ#y0P5iGS0CaW2JlK9`J3duR;U`8unl=X!W$(6I+MzrsMuvG!_^;xUc6o6vvym(J+lT7Sx^+_w~b9K+A zCp^AI&z_=+bW18bG}VD4X{)q7P7;SY*ZF~%?5$39l@$k>bK?<4c7)9Cu1s%8!xyFs zf39si$;mS>o!eNQawJ<7-MeG0S@NOd$kN!cj-s!mtv|oQLNjlUZ$_Gd zGCci^2`vIwGPRal{P=q2G52Yhpiu~(%o1=z38~9qLMxoLOHZDyS%)ABQM}RF-2H3h ztG{C4r(d1sHG6Amcl`L!tebDJq!I_Gt6-Ds6DmU4Q$EKKPJ#3MWeFEPu{uQpWKP92 z%Y3tmc%8?5_~zeFSL)6T(MtarDn0y&8M!=wb>P%T5Rm*UZeY&Lvro>MJ2rw6aT>rw&F&}WX1HhF(}su1nd`+V z^3F>^7oJPgJj0U|8iHFyQU)}D zSN+Vor_Cg)+VRk5v{x)KiXmLzQWtrzDp`+{P_&QFE#5=5V$h~Wt> zQ`lPMkGUS6GoTktyFH{A{EzNVt^B~Rqf@FGzD+QEgED+GUvHuzl{MnY@Pw8JUG)|_ z@@U<}?iAtTm9tsR=SY(m;usC-Y1;pEA-FkoID~%sg179IQ;~M(elfJ!addOt;J3TB zPS?czs5JVH@ur|2mnqrOLkAqO%OgwiYv^)N zRQ82n4IqieTX?oVM=LTa zzTtes4OjNHX>%zwbuVP!!nf(k!zTy{{Rbh*lA3TDcuzMOq#C6ppq=sqe+=sY5px(X3y>7*PwI39VXJmIxoiU|)9TSYkM7H5Y@^@K-&cr&)6M?i*f~Stg)Ni2UYd ziL=@Pf_y28DjoFoC*9NA?Q?b8U1Xt&pX1vcJw)bA@UAZDgo{$*0%JX0iYEV+Q*8pw z5mt|+h8co2kWa5Met8hZ2!0aB%@S@eLq0twz8>;siAmcDqEVkLU_)bslV4XQZ%Y;z zPV*f_f1BA3|1N+H%Qp3|4TTq9X?RF{{m9}V*J>nJWD0Yq^kbCGzFud2~t=P|>0 ziGZ#=2MJJ5)MqcV zW6;h_lgB##+Ws3?WHUdlQ>)1np#K9>`xJ2OKNSCU@ZHlF`Fu|lRsm^aqv0xrH;NY0 z`Djq1HnW{r6C-V?pns*HaZFEYmbn!cU`U{8k3}x=)7gJG%w!7tU;UMhWPM?56Q~pb zh%eF8I()7&LPM)bl#!V)jOwiGEi_-N?o}3fTBhJivUj+|X*}J3z-FoN zILG+^B`3kYsL9=3ug!Kg`y3nLLmnfI*TW+kvS}g~779DDpL9Ca6Gd(@snU3i?-B&d zjOgY2_<*8LR6*mZ5Y4FmuZ+IOar=q|<;9>G*wypcp1bb-*W!hVo|>H!{r>YyqZ%e6 zt&y)TD$#}gubuf{Y7IX@0Zkz)SC8oHjl+TK^xAfTcSf#8`kuI={{)+;djdHcU>_2^ zh9m8Tll7V+PmGqyMUj?D)t|@+juZgUwEuBCf~DeBI~!q8BQRyPne|_G9{`x;Xc0(2 zm1qB-{sy%JPmtmdX#E!tZw`o(C!nEgGh_GUBhgg4$cbjeX-qI&Qx#SAD*w+fT$a`e z0o`Amx^oD1y;-bj97)S0Beuh7f05gfv|RGd_0KWh;qZiq9>adJy$t_`y*xJ+(uv7W z34c>Ou^X9gsc8Ony8k${iTOV{LAR9Ne|(;5lfSro{zS}dEVsxXUOfDg=q;pEJCC;gyD0$}mKW{&ycxebNgMT>w z{{BHPqA-4?|Mmx)Co8C!dHN~l27X$yB{;eDg-tuDIX4KnVS~-LZKg%wE&k#4rc$5) zlIByy>z+A6&tLUb*ZDVV;|vhsOHoe>{?DMwHod9>E*yNRW!|UNMy446nSUHkulD2X zg#f4DPNVm=4Dtic6>v9SGF?BTf9kTVRF8+<#>K_Q zS=@U1SR&5i)KOO_7}cLWWkjpYOq^vN3PJ?HzdQFT%A@+H?gvGu>Dh9v3c|V%3~1-f z1=ixL{x%+|SjiU|J96+e^ZRugz15~383%EEVX-XIt8`)$59(}snUQI$>E7XKHuE1T zrcx=i3WGC#WJXizRd%tSSgp@MPV(0TUo7t7F>pgFonn4JpxReDWw+Y2G=nhloFrrl zdA!+k+7e`XtRz6p_XP>k=yDrSt4F{(54;~13B5>;l;hoiYxTbT4icD4C=4m_g#mB% z;y;h^zbE967_s(*7HoUnUlW?^h%IPJ-+j4(SV-B1osi%8hla&{jJ+jwq{+5E`GG6t z{&aM*PFTl?jpS;u7$}vZceKaPTxZeC2kj0tl}h&}i&pRz5Wl6V11?wK%z~iM2SlMG z=7Nxtw5`Ih24DX7A3{aY82KRR2>8ptA~}+qeIzyj?K=pSLWAmm7FtWMx{Xl3@loO$ zO~gV%1()?{g@vMHrAZW#4iXZV|d0l)8Q4rGP>zT1DWXkt3 z*!%IZv{=uCTn_Aox_&@1>;>5%p!$%;yc>=7(M%yRE_Yt>0A6TKO8h0dp#U+c_L==l z8~eexG#hy8j_`@#Wv5EJIzslVaD-MQ^v}NPN8Dn3@Tl>)my-no{_k3LZ2rLs}@By>~? zw{yJZsU!0w*OW&!*i+SY%NdBYeF?RLRib}Go>S*@FUj6=c-)>Ax54fslz#75{N%-b z!*(lngdXYgqh*VYz-Ieo!=!DFsVj8?-dbZ---^CcY7YW=+Qo_6}pJNvtK=htuM87a>Yvl;Vg|5vD2DEEnB58DRao%EWJ zZ*$B$UuOc`Az{QvJ54(oRiIG{{1{zBEg}PV990k3hilpvSeI3-r(0$gzpzUCPL3}o zvU&z6jV)qWK>=m{+ml`oyV!Z%R0yhr=-P^98(#ih+~Y1b)v&+&=%joOPXm&|esX(b zfwF#puzJ>^_eh9-d5?Q)YHEYX#7&q{m@>Y4CE!CyK|%3KVK#J0Kl7t^NUxBXm6?BG z==%dC=Z9&LYM+;gu|MB0e}|9V{f;f#y-!v-Djq|cH3amceRV}mip5n2cJIJO7XYlRTbb^kQFLG1%br(4FUsl=L_L| z+ftbN*~!&KsjP<3`PCt*^iq^x$0$PtN;oQ^ z3BLJpY-W_`i$;X#9lk}6R+~Tp`2_1(R0Uv^R@`rN%-IX7O8B*f@rI&_*}K}r&i_Z( zRd}`0d~G1OOMwOo1cDSV!QH*UTckJ?2v(fpZlypeUMNnBl>(u-y9IZ*v;-?2+`s(( zfbX2i-a9j!&77TQ?sIpud+*iZqOZ>e-rdoDV8O9raN^ZNtsAtH@4@qy`htGL%|zC% zQ~Y83%5?s?B;@!~a{XApQ}AK@^7BFd^wa(0*N2@8+1aO&$H7}wQg@PX0tJp;(g4Qi zza6_W0NTWA>hxJ6XtXVpI9e7zeu-pc ztn;2MlUJMu07oFMLrokuiUS{j$F_@tfzWjO7D$HO5qvfG#%g;abIQ1|1~%Fvvj12i zTH7%yk?buplC{R(YI9j|@MkHt#%;KRBQW?fv?hNzMD*_6<<1gE?bDFR4(pEB*w8rV zc=O9rh`rtTrnuWyTlR;SrJAnZNAas1o{d{aBM+=s8D?3u$+X!EeEj149B%p+#(9EO zBFEuvy#B3c>qC-hSHbHO{;aYxoxYC+_e5tSsM76Ll>N3S((-HP%cq$j-6W&Qa!@Ve zYlI?>dSolvk)&AQ38K3=a*((K>OS^v0#T03|Kfi2-CdH8Vhb7PbBMRvVbU$LkAga} z6>Iu8b*btkT%&L0YS@{Yf7P&EG_4&ar=!_ZT!nx%+qv3GwQ_ccSJn7KAxcfA|5UqP z*eWpY@*scEpq}-dZTxEFqww^hWxhD^pMKhO`Zzm7lyM}fs?^k|^Vu^V9Y=N|C2I7+ zRBg?20Ue?rUf2})=nDi^V;(LJsw6wis=Lh&$;~S8{rmWI@{VFpEl!<cuUbTXth`$WUhF+i@X?yz~$;P&B@P_ zOyTc5>46Ha96L5g&0$hXe5{G7R#0xw02*;=9Syi9+=UjXZK0~|mOO>T@RW?tk>RjK z5_wYG&@~4u4i7cLPoHP1b#SD@6Oq;^LC?pJW-8jrdq^RVRLdb^6kewKBQxV`It%NP zi#`qdm@nfj$zCF{rH09*UVM8>Rm{12LDL`kls@yb1n*j>sAMFW1uy^=GE&d>2qEzn zIx3R}&}Zga1C#VaVlC0Hi$s$@?~NgK1GqCa+`t(#E3v8T@~h|CkkobMf4kCsn#XJx z=Q4jwuTn9B!-OXB)WPODc2l3=_2*VKF|MG`dtfN%np*md7L;vG;qBB@68-KbR5&SB_MZ)&aF5@96iQxP;MY5#eb3qiNw8DC+WfIx$!Xjai zrc8-!s@twQis2#h#h}m~Sa>GC?Bk<)+}K#Ce*Udb@ZM8cnMu|;Ga*lt9}&9Cn=z<5i%LYoqofUn_y?` zMa*5Wx%AGYd%Q4p5yuO{{e!kvH-M8~yY%-PFD`n;s&`Zl)a3W<1Na3k;G}EbiY6zN`tgCRk}Va=%ho*6{|HO zJ(>B9*^$>zG42!6ui^DchU!nohWIz?ACo?JutR~!?}PZp1pdI`dfb}a^G@^iW8pi3 zW|Er6pY9vj&FP;S^-!-^Wfhx%s73ppPymuDX(l!5?kteNpQ6UG3C#wglr@`Aiqf#h zZ%J!OIJ*BH=kBXq6k(RU$Omra;MJw*6hKW5(}-sX-^fih&yH_R&Yi7zXjBgC{teyi zh$H-S2n(_k_ek=WlH|XX&}4KMCK9hq^wep_@m zE0MgOVKBB*p6y)9&be`|50ApvVDAb2?Oe6_d_vC-ccqeQAXBi&EI=Grt<^86aI*7I zy0KmArUifSFe&7zK53|`fLGz@_>s_KstHwm+Jt-!bpaAMejiDYTG3E+?V>p}I&tEIS`n;oZOY%RzcK zONW`=mvmAl@csEN8u{bYhyFF~Ma}kgRgRc@qqNn zmVpUCjr2-87+O`YbSCSq(a@O&$a1f0V_*b9sgQQ!u#3~Xj29E4nM&e*5~lu7*9l4X z%!z7})7R}Wo%XFs0Rf`$AWv60hMwTdrr)N*_8%XGfik3*+az!$!zGab)jr{tfvSXnC6TF3g{#zMSISX#QwQ z1l~%qZpB~rz}PgeE&(iSvdpa@3sZ5+iM^LSTFTNFAJ=`<;6}4|Ab4tL&$_(K4*6kG zhU$bRf1*VP^X`J8;=K+y*D7y*bNf^WA4v2t^#u11re~(@4F+FoWGId=v-E7VYr)e` zZ$!6knSJz`KJB!}iPN20_6OMDLJe1|$WT{}ADV z!wJR?Ke=+8qjop-n5tSH95WML@s^kSnz&OvI}K)!ci#T7z-#SsAWt3u1r^GCGpXfG%R#Czs#%fP~Zs9Kn z1)s~_Q9S+IN47BBrIY<(WFJZ9I-HtE|LJB1`;4*;AR9V;oOe_DB508i>nT;?knBd= z{Pq;{dni%FKah@HJCSl_p9cmfZIL)9XDgb%04&` zasT(A0_Q*^k;g#IpQ8oyb&vWJUP@QmtbIScr=ZTP$j6c6pdzCh0 z$w+5FL8kSs+Jnr+-O_zng{U}VYiF47C;6tjRO?5J_+V@MYqC!Vh8**iQWlp&$>Y@c z8Ke&meIu1bFwKkLL<^mTFI1?C3V!;_LdE@vlw-0_@>x5g8-}}g#KBBIjw8>56FQEj zu83|Q5%y`m*wc3)?bV$T+L0Tk2dfw7`EY-e{GF!-_wq^Y)cuJ4;a3Y|K%=job6!U`rXhy+zam77np4* zzU8GpJdvLF@0`cUSA3E3n7F# z-_>ic4)OGhyj);E+z5VddHDUfYcNu@iF9q?s?nWahvwqc+LwuPA z3Jj$h|M+~AZTwU7W|)w(Q7w~siv%S;dY~C~_sd*CyVGc~GdCztwWU^+Ab5O5?$21uFz zyGz#_EY3~w9L04!{*S-5z5DJ?)HmNxW4k+-iFX^F;%4AVt0j=)KEK6$)PAb*b5Muk zg9TnN=JEr36@I9mTFYv%c}(k8Pz}*m6S%K)tF3pZIsMSesHIGu&r|C^l5&L zdjHTqNn3pRj13<6F4SV@>L$v_aQE{4m!NS`Q<)u8-mCVf^heTW*U4gwe6xcWJ_Qdy$-I{|V7I>>Cr?N~zbbeTWrCu6KeQOyW?*$UsmBczkKCf4Nl1{QB zW5f)moYck@z&qcQQ_)pp72-GfQQ%JiSL2F}-nP{w7OFD3&TiFarO9$h7nyX%gG^`k z$=fszC{kfUi-^?22CQ6&v{;jpVJ{1Fm5f&usYswu91VL8mr923j(AXHK-!3QN~QW_ z5eCpdjkPc*JIp8Ly;gV!RZ?>0OIkJ^jKiYZda85tuz0E1n*UJGCbe5kTje$YaQF;7 zKgB-G2hz1naw`M^Pox}8%Hq|fhR-ujl3_tmSbGFoE%mfQKsgl)*7onfgI&NFIS9<3 z+%Y-oa~^3&nv|TO9_ovGnfgZ%IazI8|nMGB|jJ@A3RRjF7AR|s~NXjpuk`Zyqz z2o7iT#JpaSQ@Ko0IPndOKL9It`KlAR%K}M*^5d~XHcNgpSX7E?@p*s$u6PY18e_3d4IKY_dRpgj*#cL4Q z*qPB!Bq{lY2$K{oT#eBbKaUIwePxO*gAIrO*MNO51p=cVVnMtf7|j1LEv_+jfg8u$n=62aT`-o@?*&+0uUBol&Kv?h7Ezh&#C+*$fd{5 ziH;rR&V^<;*Jr|Z9ZM|zbpSs~GedTyN#JVXd&Jl8Kw!n!p;$y(p@5xl;|d$tP$U;s zaoQ-3b=x-(TnaSsc?e5}DdyC=CY&D|;#tXw6-1Gg++U)0!X~GZp7|quA=5g%G3#$Z zCkY&WSb}{b85Y0l_#Q8WmOOZF7W1AF1is3m>^=rSJUcmoLA*)H-X;1cc<6Oy^^f=w zy+U`i%)2cydQ7rfB0I6841_MQLvir;?f;QyyS zg}#pLB11#YVHiUeJ>1`%ME772m?_({OBNG?D&r)(7X*RxvkAKrF@QHcLfH43Ah2cT zI6#&VigcR6L2RI#=k@U)8IqE1N?1;g!+$H6P@XV_#oyb}kv>Y27Y+$g-V>99;X-ux zZXlH;N1khAv}h*I!4ilVr47#xdoI82=}v^+LyBS*w+|npgPVu}`TNQei;)1zIxK}F zMF&@l_vd;wZ$_X+kN)Zs0V7%8?kmG^4om@wQNELBAeB$eG;LJmg}n#3J^~X_CEQ8L zuGYx|W=spQ85W0ljfs+flQT*-7uBUJLQQHC_aAI~o?gn9BjG*j@ z>I?GP=o|l&((rG>qx=!FL{Oyo*$83+09>+N$9op8dL1F8wxqjJl8x2r zf^8f|kI05ul&G7>h_S1tmBZ9u8mg0k&p1uf)&N+o5(d+6B`i^sA3(N5EUOuw>MlcG zkFMNwY{W{s&&e85pUKEH=Dj({&P9{uI#6zOIURaJ7WUgOUH=3iXC$R*f1>z5VR(}G zzs4g(J{ser(^U5#Kwwp#_U=wJcN7=%UmMD)B$(VrhLS*$^qO?njdCj5rnuoxgi*G& z(6A@czO1n&e^b;4vd6 z*cJdNw51+!cG|Mry;L}Aar z&wHLYg*))?E1mSq)n#}?(CAV5c|nOr54w*N!5!wHwXc8jRZhkA_uGgnT!?4k96<+e z40UdO+>;DeQnG0U--&5>{Hk3gPA5Z*aNZnA2%5cGD+IfbaUrOfdeR^;dF%6XvLG~> zkIi#;H)043RAQbChCSb$S2?Mat84WZaq|T&uPyhjFvR#Yj-$!6FWxQ}?~#pMFw0x! z`VDBH%$xaIRBqH^UKz203A|Zq!M>*jfjKHix^yt7@G3^aJ58!~g1cJct}sD%qWkX) z`WtZRxXCwXeFU2rV(N1a-<~`N*|Dq~B3#1az3SEo^6>k()_g?$(2wXZ`0)GLgSHt~ z9uVf?-+Z0-yIKJPFc-3jD{O1C6-KOM5@=DP3&7731b%R)4|iX;SjeIO~S zu&)T5jL98zxD0mZV_4(4NMb&|Am^4_(LwNIRAbdWU_Da)ugZC17-odI9D=h!8dYES zK>ElY#1NL1nwB9~!m|mmP@1u-{#mj|hga=T4VG?|uc73+09xEi4IkwPFb99vCAY&_@6F zPFN}06KLECx5u#RJ;Xs6%N=MOD0blis=2H4@noK%$+#2af3w|xsc=FGnh&{TIT4Vn zcsO7~^McXl(x*s6jOu~fMC^QQCE3PA+$!uJ`747cK@Pd|4}m~G>ZIiNcghH~<5+*` zd4hJYS1)4`f?y0`%SAgpB8p8-tOaY4n?Gt~w zc%ne+|5^NqHJlDY^gLJLSdv7IHMVxU;q+{;*hiozXRL7{e1o7bVdx0Zi3f+9+^q5z=(&^q=bgxscEhPG)!hU^*^EOUMr9^YnfiT@~* zluUN;xl0z?n(sG1<`Z^|d15f|+FtG;;9#UX5ko+Au?p{rGRD8VgYf!Gu<-HCrEu5r zf#_KtIyw7w`-9K=*`Y61=+dks{)W^l;zC$0nCdh;cy_hV6P&NQT+4_@FFktBJ(;tVMtG{MABS$4GY-Qv_0k0LdjcVuIVW zz?T3+)i$y=fxn6fCki|YJKCh=1u$vk|16hE-yp&b>kS!2J}LlhuWkBv5VDwW=o9$E z-VPd0E`}}Ei+7+M4eL6Ij;%uKn5lna1FGEQg>xP+q$pxCr#!HvfN-_AO^y?N5O^uU zvgE);pej_~`0BQ|3N z2zWtZS5XsYWGl|n9V}N-^I{5Nh*dr8*%yHqX2c=+w~Ia;-A5U=AhC=|D=vXSD@hry z`C_QcAVD9|n=p>wi5WwkP{@5v1M=ZcI6~-PRhxR8V~5hkti=_IUe}_pirmj}LMdV> z{_K)HLXwgX6NF9}i`F5c^&a?ReRUUHi(# zg9g>mUf!-?!W4od%t%jsAmRxZiu6?lUWbOq=XjW5-}k;Dy&n;vxNfw8oG=Ztb=4+t z;;XZihRwjs5X3RU{!q3iV2pur5!EVT-zcRqPMvB?*aO( z7ieBB*&C55r&7Zbj98M3AB1y<)2iSWaH35oPYs39GjV#O7faYYu{lH=x}aNAq|}Lr z+<7DX1`RDf}{gZ8sk)(Jw;R|0q7V_Zw3z62hW1=`VG)KXn1>tKw@qiIgK zDu(0vTVnm-SC;9!qa^nMc>+#K;a?{2iTik%nhDTG&V{1+W25pcjm5;9#PF5y_`1)_ zgzJoOwNF1ex+Sry1>*wf+Gxqo+-7Uhw(47GVICg(dP1hq0-GQAe`5QBAgcfKGOi3( z%ms9o^dwfUf}_wULI>Ac8d(21vGwO#SMeJ+EJM{p%=PE>v`y^qnNCW6K6GUluH&s! zUNF16&B_;@kdmKi&RU)LhA)Pz1QS0pl1onh)ajN*69e6a_%$ZThvkiB7!#H?2jvCz zwW{2#(d+^X1NwKQ|Hf;lI$~5Hz3w=W~7ph1`Kq zp-%W9RyASVBefJM{vGf^(hm=GV1EugQ35&Jo#!LUb{jg9tNycN74*ST^BB!zn6`-PGKrnn=*hhDh~ydSNA zMx`rk8JacvYb7sBMC#N-_=Hj^X8spO>>wElz_o%Gjk~EAsk^-w<4N`|R?#Id`Gjia3;JSK4nV`DWEyN6oWZ-kpP>V-l%&4*pBrTmz~gWF*}~$tR=)obRQ_( z{a%Z^>yIiScE1gE2?%6h3=Y1=w0I^+Ehb(<>E{to<>&aC+Fc`_$j|>Z?{D<$I%Y2f zshWgJNd1E26Bq19zjg@=U|Qr0eCf)zu{*nscl>)n0EH@!njr?h`L~5wZvz?!c#z(d zwJ{6oqm&l(0wZCP*69Gt&&`Y;zL)~FgB4gCBz>cdwRHDdpm}itr>;;8h$qXo-3e3p z?wmkl#1nB8LrgOR8kOY_-z2+r0M+XW?evS{mlp4y7Vp9xtM|h`R+F)ez5>1Hxnw?} zkQ;?p)BExEyCQ>md{S-69c|24L_Xg;Jd8`kr!AjteoCge>^@~f%Alicb<;tzM?oA6 zIDLu|D%(lTQ03YBJ0NgGvJSm|3DP=mC=!BXte5^-E|TxM zPzQE>O05Y?WM%ffbcb$ACXh&|6pC5NDJ~bN0h~}X5}t$ddq#Ik1;(Nb7NmRt z@P7&zt>B=Q8FCb;QUxAahs#Vh1;qD{2_Q$2U$7vVO%jtn{bWKn;zmg+*)t=p0;m-j zOANtig#@h-k)vL<(=e0G^yB+~<5Px%&t=QV>K@`c2&FVE@j|pVu=0xbawoHdYG*(Q zgf_72du~nGj_)w0#Udw}ScM*@xE2Qp>1Yz3RJz9+C8fo$0-rh8{hy+URy?EXYAz;O zlh>i-K#hSUE=XbpOJnlg5E#nspXbcsmO?gEiljgPA*=q(MYDBMC`VF<3zL1q{mpsldGP#3g@~!|%36b=b6>}7$fpO2 zyOGPP1N%cu6=Lse20R9i7eX~+p0ANx$(Bla@j}YpaT@4w)Ge&Tz;>a452Ja{>GorC z8TY@K16u_ymlg}FIbA$g;vH&B$5dS;2DM_cDH{ck^v#~GQGSN^ZP#q4Zv9O0vUE?1 zL03^B1RYWR1itLf+G>uH?T3*rqK&~VhwBY^%L5G~Zib6TKYX&6gIA7reC(GE8bZq+ z;z&h(n@W3!NKGYzP4MMKbNTURaQ^WEEVS{_@uBLV zv;OJm@euEvAxW^ny=xIOgV;#u-By?>u9Wb*9SltqFO&Sb(K-r8Eys~*M(sd|OW-oS zo3~ zF;Ea8BR}j^@4lU<>&6ef}RKILE5UokHl}$N& zKb|ih`9XCjeaGT!>nmUXqpVfQ4@_eZuY7gah5Z}1T!up-PsR7s?CTZWDw^R{MXtuCv66-__qj#?y@CGwP zHwa9%7v#UQX`3YbrkIF*YWV~H$6sY}M zMQKLTr`>0$S1=MUF1zwFD7ZaBN~8Q0lYv!98N2DvPxqfhk_UI^kRB3=&czE!9J>lA zR#@q-HA)C(ze|bYf$i)PqNLh0+vJWp_@{Z1Y`0SWnXVjFh-HYRu=5~*M!2K``9Hp^`tDfti1Rk=36ed!1I1BTwfcN6{)8JWB?icc%eHZA= z9IB2&4_O0~ZVrSGGz-3U^wKJUJ=#}AgB}lZcQaH?A$=EAuzZgPEX~jqyD7c8u)Ki_ zZU)8BLfdm+v!{M<+y$nl$G!_%Sf|H>qWx5D6MnWbCtvhP-~4}qd_;kfCQEp2V5fBvJwm1?)XF}uKPw(`o%UM4ZD)Cpa23mg{FZ0qaF4t}0(i#+cOUn^tKDxw(JMoi1repe3u#Bf zWrDp8djbhu^9g%AnR~)Aas91I1S-{geBZOX9`$&=s1|L6Sq5yKi-~=K*@u)8r5aTl z)!dmDikSU$nIRcpURPx-X^5KcWu?Jl_v)wm&X>QH2kmfeG*4$FbTGGagz3Md#%RS2tnw!5?nclQ~J$`KvA<^F! zXI{9dVDL*hj#p$4>{hML^hHzORa5^a{g=C@L6a@lDumj#d79Ud4ULF^c2v8?jYUl^tw}X8Py?JBT9$YvYaHo=eQPamYFJH~?ERpTBu!N42 zP^s(eRbf)xzsJL8aok!T*G!!atokHL{j_Wv@$hT$82uAG9P;PZ%DZn+5_88XS!|lzP+qi5sLz^m z>+GQ@FD~Jlvnz#4{S2@k5ZWyZ>XOjeT6<<>e za}{ILD10Q2o4~&qp`l>G*_4uGNC;y^evSD5n%=wRxfwey+s20TXtj+7UMpKHJ^@<<{--GN1@~W= zJCvg%np*@S`o|C1AA6-@o^>rZi*L4s5Om*Se~ccXG$)i%*i;u-imkPVDFiIV8a526 zEUP*Tcr3-Ld+fu%HKm>k{*9wz`cfVnirbR$7puhnFP+EOfbhaBUx>1q^U7+Uqf6)U zwS$@K-@S(7*wFeh?H6-=lBd%?mhW2vyYpQ(*hAdzs6A#R^`~VeD!?SMfn(g1hAOgD zjgSDR>EYcNWY)DQ59X{B7?zw)lxm;N_d3rhE6Gg#IAUWljoM?Os3IN>PH2!;DKPfR zo6*s6qj=P0kxlS4-*skl$8_9i$JCQ*&^I5G(Xkch$dre6va_Ws=C1s1?^-gjBId4i zC1~YXdS?aZF6G!-Y8cXEJzLzYlM`HN%aFNIS{f{a43}AoJ-qd&OuelHXIwZ@J-zLu z_DD2YppXECKg=9?S1Bn!iAns)zVX>02rS=()HuzMw$trDVATnwy8mQyBhv_sV7=lA`mx3GSCi!{t* zT*9!RM|5fFKVj+Jk>i!aa|Db#Cj@)W6=Hanb>J)Num?q!NtyUPr-A>MSyq}KJT{UxS1}${Yv4g#pJ^PBwM5759av5zohLBP zZfTH%W!Tqc6}hM+(iEujp)KFSoM6<<<@+=BFV9n7$y@W|w9n88M~%mbi?I27F932dnCPH5RSPU_WE^J$&k;+ z``!Xz9yUSsY>bAvBP-wS=!n(QgJ#U%b}jPw2(b=|0t>CM)&n6}9bEEtRZoR^_@ z^2EM!Z=r5I%;24oW3{JK>YUoGC{ z-rckP{G3bzYe}{^w=EsqMAfO4!wn6OJx=2XZ|GKqkGM)LY};yb!!rXGoPEgdOaAL7 zador#S(^6}_hoV-Wh(bK1NSohKV}-=__Ot& zyd34>gO88A%K0TYdywrhJ~R&!vFj%m=C;eRc{}>wjIPQzM@~g8IpEH>u=t~{|FT_* z`f`%KA9xQmAJ$tiYL7d52%0R)0nvAuUkfVW*$#9XA>t>CyTozz2byuCJ@kq#tqLX} zZ|&{r_s@FD1Pl0F&fm(%dwfV0!i{vvsanSAZ&FDd6d&u|gHyWMFmUO$4ByZ3b(Xg@ z*B~`kW4)efsg^fM^}d7t$ucvDEc3vMrpoHJM0(ils#SfaGyh^{t!^evRRh&-XR@KE z#`e);ewq1kRYk0QjxocMzhrQ2k`>Fb zg#b2y!QZs|#^mn$p4pezd<%waq3b2$#aibK9Cc@?P`SXjf7fy{JAb|fGwHxZyzz4p zDL1hwXt|AM=LKDz&ZSHEiy{*wW&?2@!`jCY(cs8Y&j3iwpzsLJpTAe#cl>UHZNtM$ zuacYQP>hNb6IB)G*S~V|>{d+&J^_Op=bs$H{2EdS6S zdd_Jc3K9RX7TxAt4=;kXF}7#xM6u+Ko|QM7&~Ii!D>~npo`(%%evQ@scQ)o+fyeFR zBvIN~_IuelQJl7A3Ra@7tyAdKHp82{#g~}QoJbdsnIS{dj}M$T5}uix*8P ze3|O-7EAX_>1*LUh-pIU>**Ni4pf9*@28d_wT5K(LQ-<^1$nR_mL76`+cdv%zOcTyf8~mPkamyT8s;@)acVrNchrDyq|LVGw`1y;*WpXNcQi^U)&0` zFZM{9+Aw*3*g39=X!@*FgaV%%Gv^8yvH2@QV@b37xuv-mwT+8H74L(e4IR7!y^-XW4tei$GAD+LvVGS ziD9nM33eRu;^O9h;L^=r@AT(dB25hqA`K!`ZOvzm4`*@FwmaLlq$3j}!1PKknY$O% z`IWC#E<3a14`{xU`M#s8GDza8+!4C1|0YFUwouM#l#}z}8D7Xym)L^ytUW*nq$;8c zM{H^(+q4la1o_q5A>&8{OmNIg`;M<}>N|2WHRGlQKSR!lG&Q5YK6{4D*#7Q`9z$)d zMosirbS>>!8jT$k3Eg^s7US?>&BM$-t8Yt<+(`-hK0l`+IAE|}@jilEupD&t0`St% zK=Vla7n|Ypzsbx#-^yPpv3cVShyh59{#+Nc%qpBp?r_zs;qx&!8LC)}T>JltOHoCA zo)P@u=_!bco7VjF_1RY>ZSf8%H?KNBk8-7z=h&#u#01aK*upP2Yh}lfrXmFMr7E>d z2ksQE5oT5VZ!IFG*RQ|q8V4~U^Kd>0r?@>`?@kApSC@D1U1E=O^nU&fH!|CFC*hxt zV-Zm`fF<{vP(_OkYMx=nDJ#~y`4s$A`V6sCDx*ms`9WZ#LGY`yB5id0?4mC^>)y)N zrr)~Pbjz{A$HTs$`2+M_&W9HiB8~_+q)1_s`!n4`$TMJ|AkUnc?Uo6PE`i}!>l(35 zu4}WY-Cq@~HaXrizjA|kjdxg=d%mw4Z*u)*&=JF#V-)nDoK)}iir;(xg=T)iCbOz% z=r3wViAzIs4Vv-6?qhlnwjl}4(oZp0CIhl5snsVBFH_2z>~CCz+5FeZ$!?yZ5uT)fGy zZ~e)$t5*%nddmO$X7FT`Ptyb%%*G|ggvSi_FW*;012&M3+0R)RC-7m?a@0cCvoUGR z{@nw2!3J5mF3a6?~Bs}lao8Xj?d_J z*ZyH68)HWIH71E`lg;Sbzhcnv)-pk(?Ld?-x82IEC(lSnmr^Fa`@+YkUbz) z^?sUbk{?1KtfmV-!1IZo&ZxTLu#z0{{TU9a@*DkS>v}MA?_WXls?T`gxdXlj&G(U! z1(iNyb93W^@((TTRP9+kRnpu}Fzz#v57AOvtQX8}zv<>c^PKl8W^S`wKa$w@z%1=L#GF z){jr28cNUV4HRw#BOSlgGy6`C@&>|z~ui<_M>)& z1LH?zyNlhx5p1tcIM3)_)(dpoS0i4M!-n6V(luqd?;r4=itP*6H|&w}eN?8M9!$Tq zz~p;iQ~6J@dyh0q%%DNuz~NG!H`?-pGD*ID_Km1!+CosdP&W5S+t}JxP@9MxhpJ!g zxyb~gQdicHT%at?e}X#NUT-*`13Ps#7Yw)$@4?R3;kI}Gz;ajOC$F$7L2y{jcxdO> zNDPs~0c$yQ&|hC(Kf>l;(&US6Nv_V5 zAbl6K^2U8LF22p1-Z{CQ$G4yRkTL!JD?ug-*unqa?mPANnbpjWW}l};*9UBBT=VRI zZ7PqvK6QUo|1<|C2Pw>R#XsMsYIl9?oBK_t(KcYQjDp1HzZBZIXuPCf`Pu$2YnSAC z0N(z4md2H62J&>hEbq-^+WAy|>w6O>;olnHUi`Wy6-V^`a7mx3Z0{EQ_uJ+=)%D6? zV0~G!e;(KvaJ1Nh=vXGqA6+lVJ+CG5oHE%i<8yO>5Dv9g$X7Z=!WVTyA6)d=SIepm zV;fu6cP>SQS_L-?P(g7%Lj7XcOfQ29&K89JX!K<0THV*-k@Xlw5f##`TK$sS*MFi^ z3!L$W(Tf>kjEQ|J(>V2-T&xXhnP3_ypG_1hm)5c}HINLP-knP@YrZG3!a`B>GBrAs z(h>*zF9@ASt$q6_O?>%awHasq{O+ul%jUO*=x!fuX@GG#`9 zXHyQ(V)*4rj+PAuE%ktO?dm~ap38(Su6bxiuw{+BirxNTZ6x?zdi3uEXFG{e`AIG4 z?^^AjEG#FN!xu_UmWOlY^4=&sHEo^emX%Ar*Fz{Ld-5Kfsd1B02wlGeIiT<$2VBZ! z6WXCN`zvz7Xh1$f^<u%PSJ#ts^&;Vty>KM$g#wdRKd{3v^Yi z({3Z3#5UdgU3t)n^V}oec>J;=uYMuAI~h`V@@+Yu-Aq*Wxf3!n&v}xev{ia81f1^y z6DI-R%osO@mkO~A$Xc3E$gpADfTPFeME{wq^T=^g>w*Rl!ZcGt7UNMI4S%cpyUxt5jLg)7>P)<9^%(g2KJY zs>5c@o0_*dX+)y@rv##AF%*j@^n3niAJ0--`8wUwCF45>|Km@9#t;lS{Bx_|o@KmT zp!0VsS#%KjR?+_Q)ycGPdbB2$Mfvmbfez2ocZ)sW^hw&|=l~=gEiCz^)#HH)?_QDo zb#V~;KLA%isK4|3FUvrqk;FeBFl+{&pc-dL~I zy!Ob}s2nImg|FO$xo4QGVYbWV)pis{K~Xi_jLK&lZlfU5(iZX;_5T`5JMDh1aPsiX zxq^(qog39$qoG<`U4`+JGk-W=?TMH6aJsc;9oFE!THepS#sP-;8em~GdvDZ4Gu`#! z{3?85y~N{~R^@!WpeKHeaJrsqrUIYz#iGDo|;)usGZozYO@rw7A$ikZu}y^XZu zX@y~D#HAZZCxC0`;1MVJm{$nGmINoUAEovijXXr1h26^XrIB34i1R$*!t>F_*Mo*uqs;4? z>}(1jL<|M(38VO|AY2m~OuFKfOE_=7PY$y?4!f=!!w{4BGf2mf$= zmZ6XS4P|wy-&Yqtn0`Km*JOiBd=_)gZfJN@FjZkav1$wBCtq@hT@q>Lt+j8n$I^1u zXfRSeZvJ#NtiSdIG_0?l$GJlZ^I}k`)m7oV#)bDnBb7Ba)Emaa!p~qZ8fwe*v#^G~ z6P&XRqImVEF-CsD`8j+jZLwn1`n5)CWsCk-ldmoN4Xms>Bs5NY{K>y2G0d&iBZhEc zwLS%tZZMbXzs(YEmMwMGxsANF`w)BBGOs#k$v?L<=#=7XI>WvZ)~{SM+hM(jHT%@i zV7uhRf)l5-Y6YAnGLb-Vn4($kt{`MspTDd0r-6|Kc zPu9->$}>#j>~zps6{;6YR{e7b;V}HY3aJg%RC-z{`1yYAp|Z$Qgc$F4&2po=aT5s}Nh_6(+t_X|5U> z;GgH0`J1Ui96S|u?n_G`=$h=BR_^l8a#sb zv97L(+tB8LTb@GGl5M3Fk(HBg;I-QkPJW&jR-vfT?`az5*An5&PjSXd6iFSq5?`GK zouaFTC_?VF_2IVAn>O&(8aQ|ki7$&neEDa&JQ9j3!f21PL-QTs41{P#Vpa)t^Aq18 zB?(gXo&wfPQ&h+n6le8AeqKS>i<=Y&^5i{9hx#VR)y%(zssanH=9+4;l5HJAEJc*Q z(jA&pi=%%b-(3ZD{G+#^EA$(}W?vA74pRQzd~uT(vt?CSZ~ogKXn5UQ|8}^gzD2Z< ztR)dWp1)%ug;iDj4HiGo8a$9lN}Yj*<{EK?G(=H@UNMa~XHcc5rJYY}ky=Y#%kQY9 zy5*--QXTf=Vt#m=pYzs^h^V3lPkx8$K;Bi^aGsG#+ zMh8MvE+P1DHW05?tC}Hh{z{<2?+UdO{IqR|iO`&43D2JbhA54`)zm!rl0rR_4$)(M z9r`%Bd5rKr!5^(_u5YbG20|I43;ngJ5H&23N+Lw9eaxlpu;uY$Jv079UVECWDbOUC z4q)mV^xwVG)Y_Mip~sTNa;=%B(&yE!b)dP=h=w}Pcx>TYeEZd6f*RQ3VDrC(Zay!I z7y$zv|EVpfr>fE844rF*-|)~WQK%{dEfm_Vi$@T0jT%sT^^JfyfC^>``kEGp$#Noee3%Vt)1o?{uyP3 z4=qsBOs#)E92zmyT`50;MqhS%1KMwbgx-$0pX%xf{KH2gzJHXz%jCk?7w+-?Mz47O zLMmO}#yUak_2=CDOoC8}&u;Zo@AAW2<*d|aDy>C?F7%s48LFn0N*t|{-kuPLRQhbH3IZC)a;~%XN?V+sX`j>2^K@4%-DSoK{o+Rm3{U=xpCvH%8Yw?b)ExSceevJd;;kgO z=;VS2f9;F^?hpUWPjK1pnxiI!i#=t?X9jXx8LDwNb5*+JVaDaEm0NBLCvihYfoc+r<3l|rk}HpBpGr4_#e)mkrelR1b(2b#kj+#!#1%@#MU_h+qKHF^}c)^8{I z_$rgPhIo#{r!_GqG$!8@YFu7Ar;Qk70yGfN@Yh8Dt)i6w&|J%yL82MGjS1L3)i?^)ygNh z6%BbhqdE17Gvuj?rstpKi@jvCxMHuP($$|fHGA~L)0A&ItCgsL3R(Vfw&Q@xF2oD{XnxZBoo3V(_ z55;L|)rC0tPpD}`{Jyc4kbdewluI)f>OR$%R&qS*E>Dp0L&L#NhB^;cC(5W47`$~F z;lCciYhJ|(`^lEv*o52Im24KnQq0GfX! zCVvQ`g;G5i4bfG#R7fLO8cfs zp}uOR-Q1IxulcJzn8yFZ-rL5;d7X!XXNDqYNQxtIWYtbW+Ef!;c4N_26xZKQs86#N zMOmbx1g^l2W?o7Y4QH5nhmx3BTauEk8aKslaBmkaHoic7ZLn1@4a)*a8hU2KMRu+(uLk|i9Z7cGmtV<^&#{Rmc2D#+8 zqb*$HJgN!nqYV;~B5CBV@XtchyCGz;6UM1GNqWaGxL|gxMipXXzHRIB#gm3k=82_K zkdSpwZ9mbS%CukUfm$LKKRM1Ut?mISOaVoXN`YBK85@TKDH?;$Ht`*t?&J%GrxonWEG5IhTpI{@G zG=R$cE}(WU#gCu_A0}K!qt*nHqm0}mAYp|NMxrzd%`e+V9Z%}58ZqDqA<-#pbggxT zK*haIz0;z|svn{LmP5GA<7$M~0J@=6KvM%OsFCBjJd`$Obv+*FO0B!taq*+bJ|U1S zCj69o9OmNINBo2a!slCOm zWuXZM*~^YhOdEs+vexS9JF<1UImpLuZH<0hmLu+wUj5z|xR%TQqr>eYPJ2q`jof7X zA*Z;|{Z`OrE?j}$Ff(;p)K1F*VKy{2y!3#H#ybxHCD8dsWLJCLHQYlNV13na6$LrZ zbo%F`9^k`1{Phw>0!D(Y85H9)A1Hq46eMykiPhyPOWg2c!_^xr&UX%fQ&GtBZF+a@!nyx!}rqQ^NvM)nv+kbsnXeo8(Rt((FWXOijMRZ)UkLkRtZ zAR#7esv_`P??I@)?YViz5H5WfC5Ge@o=mac2&zsXU zx#}|WZ74~D`lQl0a=gP&_3-K>kkfMY6z%LVm>N}eFMJ*nEQmJvNj;wRFCe}vvvArS zU?!`J*93j8Eg+q#5^n-72eBMov_}$AwC07;@gW76UFs$cykI2>?2{Z6-D*()J#Tk= z^IayA*ta1Im`t4?OP51IhaOf?Y-{67xe|7^rt%a zaw)2sP?vaNDj~TTD6;OZHJkR60;#J@h^DD(=fX_PLFA{Aw?DO>@w&iTeZ<{@nkBD( zUk~i{l!i#f>fq$O^D@4X?Wq6=eetDc+6-Vq#jt|KA3>%{7n{8>H)_qgf#4?|cElS* zhPwoy4l)4VTD?A7^J8;>T~l;$-mEu~^LHuAx5m}#XvOdoFvgv3zf`$wB%7?O(m_xk zAD-~?hky*RBB&hM!oI>IW!~Ju^9#-1I{7b0KOZnyIrGv7o6v zpg1#WVlcOnz5=bUyp)js_S!F4&o0YM9XTm9>N#+h*Lahd493W~CELomTABj|k`gtN zUuq`TN!u69&gSyEa&qE?8IejIsrq1I!{EV&*jiU>Gd+ZyKbU$2PG9Wq1P-*2g++Cz zIlT_RBbM<7B3n+Yc7qQ*daXc*s(51uT|KwhT|+mmESU~UQA0YM33iHl7=ifLY=Y;{ zHcrwB3fz?T)3Bzu$8@;!To1Vso!RsCJEAHEG7-O0=~2$1TCqs z6>%wpm^5_G&8$Oe3m}ue0J7BeW5+SFhTI1~7iq(zf;p7h5Sm^z8XRV`Ly3rLlp~Rm zmlo0$8wQP|ew@Rw3*mH8i(m$-U1ze;M2jpnag7o~Fr5YEpjDvC3q;sS)n1tRbgnA@Q0z3eYvoA;la95K z7~mHO{n~iwAdt;eLJ&)2A~%8dE|Cx_BHq|vpo)4kaBucRZUMzME;mWqo%co#xUa5@ zM8cS3ZMEK6fyKo}Y+eo44WX9p04sjPv$C<54)|s^4ydQe9E5c)a@bjvE*iUJLud#B z!`fYE8#|HExdN=`LoUHZFS#JCH`)j&YO&Hihyh)Y%qMLmCok(Towr3+BztjZlWOm& zbBXG`MUC!Eia#_kv&&{SU0AzRN1f69vO$d^DN`WKGy5n^{be)13>kZA(ppw54Ba8t z^y-ii2|NC5-lF;1pZS(}OEVoC${ya41l5U3RPIwz5h(NWP?G}W4l6GKF9}fE0u5;p zCYJ@oVAj@y9=#28*IuN71_iF3A%w zFVlW=M-{XN8=>t?!lG37)5Oe=$v&H~&@TZHyA88If{*hC4axY~WU+b%n%L^rQpELQ z^=DW(r!l!DM5E4JlZAA7aA~_HorB$O#m1IaYip^E;aRiJs>bZiFhOxltZND|NLTO~ z$zjiR=meX+8pE45UKF-<4CUS+sZ&zu*Jdp6b3jFK z4niae8|(5_7fi_*J^alC7s@~U1YtU2u*=Utv>!@(Xlx>Y^WCO|SU^q76c_*jE+lq0 zXIm43io#tEY{2BZ(Ic&}0+=+i(d-!y7Kt!d8kEVN;sTJkjk8dThk2ANJXA<<6Y_e9 zLA2YeQ(4~fZA`Cb@urGK@xmWc$zY^mLvziPo;BoXt?INPj%Y*6+t^KQXnLDT#dqbT z7Uk4%g8p52ZQ!6Uc8;UeRQQ2#sLArY)8jkd$%O-O`+Dl$G~G={gyMZ68nK9`cKI@S z>x3Pc{J%jv=pj4}?Y~yGPshigQT&7r2F-Ikg5oTxC);wbdtjccm%RhAfWOEn+L?<- zB?hjGSU6r?F1l26;p6Pvm)}rNzxFOMjzM#wMz&g&>sR#Dxo?$AaXJFi z=jvO}2+xAjEXbPRSx7yMF8k%Fk6~+LLXk@vIK^5q3ag1JMLM)X(%H5xDfCIqn_~!K z1G5N-`n6bq_;PI(A4@g%4T51}XF7Gd=NRL}sbXLa{$TR5ROOhQHfC9kjp5oA zv`qJN*#y)S+6bB<&Ueu~!h)8`c3xw33)a9XdyWweBjtdexl&u_0NpZcj^Z76KrbX% z1^lpHeSLoU0>&CPghyae>_YxFXco@Z(yJMbEdetpUVuWU1nKbfc?F%;6M%CKh0sDiP$ zU!dDAg4-@M>d$E8V03K~d&Rvev^V-7RQTNJ0{S(^*|Q zMRj)x>}xG@vce(4#ny8_OU7LE>{=^D2eh6~9E>&FxXz7OxtR0q zri5s+G%x@(md-?AX=G){B>=KCG{!UnOlLg^DE!F!%B4R|(3^8U!-HvSd+(>*#mV(mLhT)GleM+8eCm~p5Rop$X2x{aQHM;$qN`$5bW?3_T!_S6*(xtmruw+0f}HY zpx_w$tij_F7wZDUOnqOvZqa43uTNoTom_QHm@gyKik9 zDZ-mE1|88}QKlT^O+XB7j$>&Mn@#yC>N$>VduOp96&H8YD9U29Qwm{)cv}Q! zB|sVjmah6Su}-BhIwpnjfDkz&lwt0VVKz8x^l1J+|eEw2!PAZ^dyBUx2TH>H?s{P>j) z{8&FYa+1Uv?vRAnk3>AOOCwTyLBxt&kAzXFC_&|EH4ZZ*I{$z&j}QQ}5oglED)0cy z%{nhrO(AHl6#@g3l`u(l{UH>GAHDi`P?mWUMt8yiJ!_8{(z|6?O14X7XhME? z%WFRJFL_-_dT}r1JZU~$TvQtLCElKai8B(U?zI`AMNW(cAF%)O$CJ2XFu)#dqDJBh-)Phz8A0^#ab4lwUx zC@ZJPB)}5HkIYTO1Q?kL*e+X?)`_C4s9hr)Ouz4vWfAtEpC%Rj0I3gbH}h0<RiH-^T6eR=tI(d9crV)VF<1wWOhG*ka#@%c__;B`hZZF*wQzVRCb?CnqW)Y zgx?(OojG4FD)Ar@Ek^wEmpkDHg<{!UFQcXzM)d>^b+iYk0|YJ#lt*2$*a1lIraOuQuXdX& zM4Kys<|6MD-pg`8$Uzd9meo8=duLS8{1z?8c@SGv*h;fbAu)biS)pvT)Z0N+*28D! zJ9vb(!Ayd{am-ohflE>hAk=5NMr#=pi5yEzO;Jna816J>J~YjRdM*Auf-X3Zm0#io#GD@}r2$PL!H@AF1bXj-ukp-h+_ep2dy_S#d#Ly3qxu zz8SR#Wl6ENjX*i>#1)C?1R&MurnN`C>mtjQslZ+CPyXA$EvukYNtXm z>_t37;vHioxE1d!Kn!&}$g&HH2RgzpwjHOvGZ#$929UE|ylpWFVE!=;pc-8`u^|%s zlH?I0c5~zxh}ux&HW_mr$#f2gaWwX#C!S~5<6vlYVEA6n29nQ)Zbl^K6W6A<%<`E8 z8*8!0B98QI$eTCz_E~@0I3Ni{doJ#~2DGk$IO+Hr{G9EqIu(P69FMKnfwVc@!KBd4 zmSoKUCNGz`PVqZ|>LeZ&4T8wI5(UWqK_;pgOj*Q%E_sNKmKmCNX|BxD+$5Tj`B&)r z=98H;QJpw|eBSA1`)h$HWxh*wd{by=9=8fn{-cN>t^Qe+a;)XLsG?3uiIz%&nN&E7m%JqECUMh*jE zLNW+!>wMP&C4h#f3oSgh%Ta#FWaM@+3rDSyppuPViWe1MtsHS`%X19i#_+~3przE0 z;ZZ-yDp;N(h=U~9<;QGz)3T5U0VvIaq(LDtSmjaLDfQKDAxm=LCY>maI~k|i4b;_)yvBucCz?I5P zV|lS{v1rj{v|4VIC@2~giJ?mN^^Vs@p8d$di|B-Xe4EAkY6!qn1tA1&K7F+x??9;I zB{`R%zaR(QGKUNwx-iMhfMw3D^^zN5!6<{XF&#z=5QfMHi4S0n(h+)%AO)*oB>HWn zrh!x%)8wvLUrod*8WGWCC*BPvi=I+oQI>bqPXK8QSW5j^&nf>Y9vlf3m``O0=oC&3 z3N6^s(j}XHuGX$y#_qwPI|ln?GZ7L!>1rCQ#k`BqMGxjf#B-FHt97r=u&c5LI$UQ( zuq4j*OW={f0T6(*y%D1sG{Lb+p>ymYMZ~0da>zl0TGVQlVZuw;BgJZhBf0_8>0Pl4 zPPCDX=$VKFPK+Vg^Q8LgvIBEI%EHB=sA>UM&l*COYLWS;$cj0PXGb&y1c7+!;M>_f z`03i$*L~npD+cu3E!+z6V?Fw1t|b_B;ax(Q+5XDpw$UkE>Uq7=8nXR;Mx$W7W#J3B>x<2 zoF)`Pe&S+qH(7ojdy!0jGW6qi$?jU2{B(8M*{5)IgO;CcJ)z|%=Nux;&nTzl`n2#$ z(#}trchaqG`(B)mrv1w&NqT-V^Jp4NgBU*fGKyFiBIb<&C|@CB$jP2M(+`vQYS#>y zF3ioz%$slswWm%(u(n)Kt1X$jKx5*kl4WGT<7s#3jZz}aL{7|td_fg&rQ%s+XDMHU#@AN^qjMC_$(++*;x<=hYHHiB^lt$T~cS z3fq^D+pF!|XQJoO9JpE!L||tw8zp!rIO2-sJWT{eN+g0src6<4AC$6<)+Qe0TK5tR zoG9En-JC1|@gDaG$$Mg`+#(wfJIw4XRISP~2|!^JrQ?nV#N{>XS7Vs(doKP`pwlwb z?eo8a8x~fR8B?-xrm}9tiS$B#Qs^O9E-RIfcdCd;2c)P>B9R2@XcvAhZa=q1M{h~O zuPL)>5EXf_9`?3WiJtg&06rn<;^cV8Me8=iMF~+Fdiae!+xZDktFnKIiFyWRg8*1cArZB^gz*;0^{y?Fw?ofX z(~U0qhY+AJ%pL^ya^5rp5N#e_To0UhAWzHT<%*zq#0|=pm?s$b8XQ6v@u)k!dKu5f zHaWbyX2ZOn(vlZCp2I{^cwVK}>0_Pn_;uzHOEgZ;j71YO7RqaDAk;1`XYrnOUS_T@+gxLedOm>8oM1 zZi8wK5cobmeAs$34&k56!V$tGb;BjHhKH7|1EzVvS-P4z0-n-SYr!3JVe!@xT~00i z(ww85Op;zi=OC_Op-)X}H5s{t4T?Z%7Q~h?*)H@i2JHIYsdaz%Do#%)JwYERghFXD zVFbQG*PVyTxkZ`1?R29nk`;EZ}VQ_zp6E*!e5=j5IZ zvP45hwu#ao-u_LGH+<88zm^E3=zKi%7fYjTj6^`Fm1ofpg#=yO%f4KC7OJSmy~#f1 zIX>$fN_Q;Q_CaYDbj}H3VJDyw>~u{a8^S@+gh2SKz;mGtI15H5OQGCBqLPpf(pX?w zgYN#qjD3>GwvlB2a@aL|t4|WW#Yb&_1x4oGVlE+uWSM03oNm+gMoKp`*d8cleS$_Jme`svnECAqbn>LI_Jlv8vyxQ%KX7dvF!ay02(Pm(sd`AOVF&QE1$790kuKDnWhr7P^= zngu;gsnx}5E{NBmvpxW0^_UcKNoeNl$Ws3mw!p=W3%4yja4ox-_}%vaOx1XRg)5yk zv=bvE91kv}Km<*5p&t7Y<;_B~TdfQVS`8qI_Yz*OrL!w5?C9PDi`lXN5lY+U!C2XZ zY@(OS=T7yS1ZE4TB?^tXTTaiK=^k>Y{c`h{`;D&G+EK?sCxmZA>7kcko>dtTjpns1 zOkJNwNooJ2xdhf`4CH+{DqFrjYL1i%K+BJ~+c49a9)t8EL%Q@h6`Mwh)Yw*x z^3%C)3Q(Q)8cV6ti(@+azu=pG+cr-IW(~6Voui#zud^b6GzQT22D_b??nhmasRTct zi=C3I7}Ds{I$oI)sx2p{_!^#+kM8qQV&6iwW^1jhODF`f^%x!OkqFK^>XZ59nRchW zzS3Ds^#UF);x1X}_Te0OE)A|y-^?95sY-xzQp8-Vo}lA3y5}ZUd#wPr9L3p%mGe$U z!njmU=aI#aK++6EkcWtHy=)mE(o`XYnn5;&O#4WX5T*6w&lZ+0YTZ%sR)GYgmwGC5 z&xMknZ3+XatU>2+V_n{~0TCBdly1s#LafvYucDTE$uUfPe5dY8U5Q`g2k-0gjrU%y zbjZc8+XwjUIbc8ff~-g1RE;X%06LDYL{MW&2k`D^alkb{B5q|l0`*u&oxV?A++%_$ za}IQOimlj>d-eL@o)=!W1#x|;XHu1lMb`p5mQ0P+Bv{DOjSNVzt;MpiU9Pj>iX`fM z&an&Nyd$r2(}l~#7wO2!Q}KM}QfqzSk&9rLz^9d6JaI*J`Fs0#dQ90kzE9dIE9C8) zWvSjTMNS8+8#o3o+mKRv6v1_dKKpQU{QS~V?@Ch%`1(~!<$&B7i@|dzj~#jOgMHwMS9oTrgjP4C0mmiW)=CJlC3n(Ao`k>SaVV&$^X zUN+X!z_xOk$a3M8#n-0U7$WzKkht=adQp81b6FTfbWlkE*1U6=&{a#1a0{>&0~W0F zVgW3vS1(rr$DC_02dmjou0O7{k3%k>!KT}=&i9(w`Yug;vKC$ClhdhOyT?-y&}nM* zG~~Oa!5)fiTQyO^YQl>=#+d}~c42ti3!h4QqJze!GE5GkOQcB;Rr<*;h#F7b{5WjQ zjujxLl-A2i>YoXib`BogyhWY_zG1CZ>-x#UZJcN&DB^PA-sW0$Qhdv_$z045c=-R1e$>Gmy5*3(ZEtQ6>b**oOi3I&F@!ZcIv$ z10aMqt|K#Y&YoXn_?6@a-?FMPzFw7L`Nu<)$!)L$Lw-wI3d@*JhNa%giqtz=5%Z;i z4Lh_F*w=Oh+s4tA?}wVmX1zYcABqfsBxCbU<4Zu|^%xqX@Qln`Y zZ6`p}G&}&!$IK;kRv_sBEKEcJcvN}@xRM31XwgAtkA)k%t0Ffc?U%sxL8g`YDlHrz zIzQ7tgKV|^Gth$XpS;pHrI!WKX@r&sK#`)0A$s@TUuSRDSmC_kAFG?$mEuK=(fJ=5(jVvuo zfH#&i=xnSP%?8*h{5e2TzS5iQ4rCHzv1*#2z2^b2;a(J#Gua(TWqE5|+DbWqTo8w5 zQvS$f3XI;=IkbAT-W=GzNvoRs!YBAS*xm9wBh!nlw0 z5{;1nx!qVr!!bX13={vBAyAYOH`e_(1Aw?n7pF?rz-$(U;iNj`3x#ZHtO~J`C<-%D z)R-lR{Hy`sS~G{EB!uV4C%UTm)$zKaL`CR6KZScz*OS*BTB zfqEKbkdCf#Y^8SNc=K`-LUOqXP>mWmWgX$Dmkg39NC?$Bz7=n9Wq}1+{e;Xa4la-Z z4w}@6fFo7Q@v~wc#K1FpjxF^Z$U7KG2VC3B z6;0YSHDnS;x~f-0XM&Y%lO+UE0gMiyG4sA;re zH;pZ*B>}paK!jqb5S~fT!W?43m>>7TDEw40TCKOnypRM#JujlV@=Xuc|`vxXXwEW zkK5NJ1+Z11#G@NX1sbp=kpbv*q{EgO7eklGc%51z06MMd16nSOeibA*i*A0_+H#si zfXCQ3VK%{5>tryJve?nGJF5~BC7afd0s+}G<@}^XVDpd=??nyK6s;dnvL(?DKb8QQ zUeOoPc`;KQ7&u#N&=Y+a^D4vRXS}i~1Q|GhJPwD*aWUOXgdP=D2WQRb=etBjLY$v8 zG(Im)hf96SAqK4Y5!zK@s@U65iQ;l^_Df@0BU$sZdeN`BpvaZ&y-;4GGSHO_B*M;T zI<8P50$q6lpzBALE_XZEIXK_O#Rrtx6)3q!azCMhfq3kxyw3;CxBVE_EQr8Atzl}` z@sUDK$%W4IdR3R1mD|4YvStzMqAARcq#>|Vi5xbPI9=SW@+*SyP0z#!0EtCs(8!;I zbqJulKiT87b??`h`UTXuoRIecBc#qVR0f<#{}*cfCw)jio`X+4gfG)vI|lT$d*@ zQr4S2f1DpB7ZR_d&r#Ihwp>!phCH_*jFaWG8O&~X^vo=(5XE;}Nv6d%L4_+wCAT{3 zoEf$I?OY-uKBED|0$KrxZPvZMaZhJXc35U~+GLxzeL`o4mB6Rc*!~p%{4FwVPlEENGC>pEFlZEO)3$&TyXplFW^KB#-Nb;a` zM>fHV+c;{4b7~#Mk*uK39jbKM)mF|3WD^&&^S6W{tGnq0Y<9pwbRws#A-!`cjTta7|t?X=?V2N>PlycpKFO9?|Na6r1t@OvfUjV(pPP8 ziH^LROgk&Xt##!B>)79)(1ZD6p}lsmjU%}6jKE}Mab@y_G;n>Iphv#F4TcI z0y;hg3dy@Co!tpp7RozD&jStgo?-qM?Enn9*OpaIUR}&FXqx#F;MwK%^X(=KMqj1r zNz92ik>V36$_vRQ89sB}1;qhx6g_3{!Xr_LhPw*GW2<7Um-ejGpV0N6KVYRW9=&B3GzBI`9Vq|J1DRfo1RGeO8gD5S9?-F!h&Bc2C697d2D6t&(Jzlc{ z_dH}d=|!O(n$YsTdKQ&ge329R*bxBfxRe@UIi?zHORQx>qA`^iN~<~4;m39EQ@-6m z7qU19Kmd(Av{Ozw+`!7wsGEX(cmtOz(qIG<)mfKrNMxssF6xI}NML=4D!E+>k_YOvD0-N^cB=ChvISE9Vd5&lFu$$>& zw_Rg`p>~}q1$gpsV2E~849M_b=c&};=lNb8gNzJFrEL^8!UwDnsb#tS4-NfhS#IMg>?FRd3ge^LGJ-Hz}NCQG7(Zc|8)g0p8Uau-= z*wSjJBf&ZuJ9F6XkQ~Lc@$CB)W2p{>!AuWR9)h+8VQ~3HXHCbrppLF_(GCgMc^DPV|XmA@uLPy4+9sHMmtF{w74eE zD?pS{Qmu(PRyydujU@!9_qT@N^oA{k#)l3=amc%-n&OKceWD#AhwC;(LrQ177CWK) z_S4DbTAg|$3#1iEX2wWYBby}&X}^Rd4=AIM@fq(GwoP*2EJ|Q4exP>{HIHEbi4BDi z#e|X6kBE7D(y$N~2ij=e=Dd_Fce)g00@__#fv{8J?Vj#Fp!~IENXC$!Nx*Qf*#)ja z+5CVG=fM@;fUO8LvXa(2KzClU0GQz@Ik0gQ-nzs-_WhFwN2kfOE)3PT8~i>v~duJ-W|jc4Z}LG+|Y>)_v=_leLwmes2J&1uD%>VnG>US29YUC!hSi0(&S=WL;BMu^ z{z3GIr%l&IQ4UX7h3+M|ZOsFc z+*b&A56nDfW9y@#-AdaGaR6qVGZIDSLZe4T27w~m~F9N2~~&78Ka zvneCB2KieM>QRmqp61ixsA9QSC~u2$T)}cb%QNgG)K{l(?n19kLtOJbDRb^AXu~4p z>Qb-usArd@Y|b$SJ+ltKEju$`GGd=z@g0ze`gSp9$p*o7;dlad_I&l{id1@QDn(Urz^8l3;kA254%o zLTnZO*8%7SEv?IxpheMV0D?S+{3Y(vwDbnVuG7T9|ILeG?kiAtN*$lbl67S_g161w zDQaQ({xk5$@MAO;yMlU-(PF?w66SAGZ3j(Z2nh(qekhvg4%*|6n$V>g=es(HCk~zkA0NrcZ;BduOI?y3S#AszxTJf z^=)V=BTX#f%di=qHeWF2{6c2MHlw_8>D&%(McrHfFS+(E<(G;`v@Y9AQ#OkGD*vtR z`@{9XeUv@xW2Kblo7>#i;ESdN6|cxQx$P;j#7T-c<;}d!V~S>oYddeGIIq@d&L~cr zf||M(%eH9SF^3lqUySVYONF6p&d@YLD*6&Fi>ZK9iKopK zngR`3o=qWJYLq9XeKWDtLLG*zXD2~n&vJljn2J<_5Z~!g>o6}+kxwao>8M#9OQxnZ zZVvU&sY{gGwE}78U^X|8j!#U&GM~|W7la;24EEGIZODs+sIHnR>P_y|wjiLkQ1j-E zdn+MCUmfXDB?fqo+-qyD3j(cM!l9-7&isS4#_t_zQRm*uyFy!E9^vn|I-FzK*26sA zc<1A*Fw0B03bXsfOLihbGk*Q!Yen9^wS7x)@4NqD4BKKh{uAS*lsMlccl&L~dZ^2) zP}(}2@f||a(}Z1{wB;!AbliJCtZjxilqM0!np?MSCeFgz-Ntr~Rz?~VMw{1XsL8X$ zjwG;)&eM0|4sy;S$h_S(``L(Gx^}No28U5jYBvKOolEio>#|R~52+D)s0sbfv|d95 z1pF~d$GA8Z#gGC0f(~lU7ATD{TY_8)F)GvnEz0&Aj7>Ea^{82 zo80j;1YDyj)~1gC|GWQRq5H>`ZLoyb{)SL3zWmD!i~zx9_a>5Dz64NMIR!KL4O~Hk zZ<&k6JkKfX^8X91we4g5bVjFWIWT<$YRA}=nP~$v&eM})W zO%lktly&xS#(|Sj-ytR7s43VrpE*Y9HQLoz&0X_973X+^MzfKV^9`EsuFQFAT|1le zFk{YoAXaebKh3^zWQOP{TrWr*AJ3T&*;>MPW?-B;6k4z|F#dw@4VHZ~6B+knm{Y&F zZ{PIE-+z?mAa=v#zm?NJ(YKx>3pzbn-@XHr-F|SWtHyjMMA5INQqcR#B_~G?!Qg>E%MuQoH_y!)67n4 zapbw9Z_FDHT7uV_w{}ui-p0kuPi{MFJ1P6TCo!%OE13ul(~YDvjuJ(g+r8JYAe#oO zS6Dp~sy`NmHtZ6z-C4;UnwfVkcMlVXtA-`qX5%|MsmNb*F?Z+0`aX?%HypwmwHooQ zQ<-#g_2X)t680f>NM!k;hR>Y;cmhhYn!r(|iH;Io=Np<2+Ojpn09oI7_ zyNWOFbOOhF8v3@cY*#x#W7g&Fr_$Z44UF$6ge^NBntawBHrf87}cgJ{1_%uvny zp!h?Sk(%~4h(o|O)(9~oD#PixOsqx&_VFIP?e^%GA#|1|>ouYo)@YhC)9DOF4%trU zT^cuum+a~;Z2S*9BPDzuRQcdK?R30uri5o@n*%2lN^Rxtz5b&rn15%z?$bG|_th_2 zF>Xk)M#WhUFnZupm~E~JrFORwbiMxn{I~OA@i;Jl+oYx|?&}Ee)slT$TjN-PoqYV? z{kQY+YRu!P>{n?QZ`sa4(IamM>CQg$zG?K9l#Jc0Ot@P}_e-N6zw4rNsI;*0+dCuD zRidgydbXnNXPwq|*042MLegKIeP^J1PQ(8@V;yEP^Excs``m?{QJCAy0$!yp(hN@n ztBSp1nh(-yZSxAThI!kz_Z{DOP>Q5(3D&%+(!XZddv8A2SBBgH;~=##n0Hys&1xPRPUOYhZg_8>YS&E;%Uq3 zXFh>7;Z4zKDsPLzE8plQm09P1QNE@iwK4^52{V_W#y|1C)*q#5(@zros$t_S-U!dY z7SXSSyGe-sO_L2FJA}8@{6+2ku(dag)3w0V+96x3`-_T!{I8yggj=a>;A+Yeu5okm z=UKD4{_%+aX6_>PVpgL?a~bjW{eG2it+35k)$bqAhO4&IAIGlk6xXns5Q~OSX3Bh8 z=!mRH#IZp;-9gS0{!nASei8*9N9KGGYamuB>}X!(^IPFgbuZG5=^fGr7re1TO{0ng zx-t`{NXyd|Qvltp`1C->>LT^*fjM!%bzc#hfCRk5ZOLz5WelH?PE>1SLfqL>sf>XI z8C|0~5)>5swo7LCm^lZS>ZCD)V`cVINAVkpNGb+;G_WOx4jh0$FF@{E%og|^*Dh;6*Z@m==}U@)GrU} z+xQ?)HN=LAJyJn6EOzv(ecG`3q~;0j(bVG1*`NC>S`B)ZX?Agw4jH!pip`@h8E2`+ zcI}1a{#zWk=-Iw4DqKE8c!CX?JFrIc_%B!9Gf{7-jaS~c`ewlqtS*T$)SR*-$gNH5ij64R#y1io>*kGHJ8#w^ z=kw=t|H__t;POF-cAk z9!qFKum!#n$7~3yvS;tu)QO$fa+*k}rhMg9vVD8-2`wAm`H!n4HNPd|>x~C3)sr19 z#P!w5q8+WEaRROiv6(#~@U&s8XnYIjhF9jN9d>4hp(l)(XJ|S;6}0;;WA;5Mht_Js z>OTdW??q!$t`E!4L!03lu%;+)c%ya;NRe17EQp#Eo)lDenwBDy3edx^x;o=sD6Bv4 ze3$ubeB>`&Oa6(P!c&foXl$SJNPe5*vtU6>tP!#rzv*mhh2J|9_M$s-mlcrY8I2*G z@fmna4c1kkanrnQ81Ag+*Mynq(nzE3OcFiL=^_ZnOmcRe#++;PEnlbtWv@6pji^BY? z=zUobKPy~(HWBMSW!RwcX}g^|Dlx2$F*YB7HMQ(+5EBZ$9ks)iCv@nM`@rV=a&Yr0 z*Y_8QO4iwQFE%NjmB?hgM*W#%>N~AvQA|luNbA;%*2Z|}3c=ST9nY=U)_h~9^<`;e zT+v^rJ=ihW-KZ6-mR)U#s0e!WVV~vqY>Rf>2itQ9xplv_(>nZIja=Msl?1i>Dccvm zDXvTc?(9hs6~ONF=27?()(fdY-@Vmz%=l+8y?OAI3V;%C<@&X#k)*kLzjfcoDAn(` zt{se4^Fiv^(WnhP34idsx@d{&aMyL`@|0@OlWdNWYS`Z6L(4qR7zebisG6}W^x#d! z;tr#!0MFGNe(ymlAv|5@jKtlhWPjqk+O-P?fn zGd*=W=6;>xd|aq4f85+xoiS5-f2~8(`??H%*b!Mn8An{OAy{GK`}bFANJnsYxcQx@ z&+b2OvdvURpK+4zQ_$S2XN4AGv0ZP+YxA55-B2)vkhelj{o|;M#hq+;uHWJDCCvw| z!+*~SEm)}&Sk10KXiYPox?(v~#!G#A5vKLU2dz0@G$Y^j=7K1&dO~R;HUA)(8PCYy zdx`yc;}F*e#;N1{{*#gy@&7Lwvyvx>e#x+LK-Y3(%EyGFHb>Lqt~t z-+)>_4JfByt!Mfb27JzTM;QF9|?<^ZteqfSR{ zhE?=n2Hu7x@{>G88;iNaBlaEQloKo8su@;9v1gOBhEJ}j#b8Z@@2OSLYgv~}Gm^gf z<*C~nJP?NqboDNE9}P-75peu?RPJf`dl~+Q;SV}-_#0626i)0x44FX+U+zbM`7*Md z$k^0ihkYif4V_u=7ihdJTR~ll>$dYPL5H`WkL6u$qXyQ#lY*G8HJ^2RquX0tolJJh z9yo~7DDybWsg%#Ik!-6cnEX|eSRt|k4E#oarM@nq>0F}M@9!r84MJJZ-%DA(x?bM< z)LS$I*Ud#}+gsL?M}h}2M_rnEYu1DwIDC|WTZPLzCCe9EqvyQ*MHrjOn>|szOLwo! z&%fjP){YscgmX$PJqqZ`&blaLg_!TEqGsPpWS*)Slln=L*)htijT}$xdqw7-=6cPT zhZW{4+W`KInw&pFM(59%{DZL5#3L_5Z+?Z$(~pyJ`W1+Wo0zF*eGhewGvRPj!R&mh zStOdBX}qRHzWJ&Cv(Y>r&cl!&c~a;(GwDo&!uC_@xRZFR0YU7aC9jn#w+;Dv?>O$B zIlzqz@c)cKiLM!5G+zOn4WWGt(3|tXODq}-8(##-0>sb3Dm?>ln6WvM17ptP#_Y$m z8NkMGP#z3nna3f7a5Dg;#Hr8+mzp?+c7Pq(%#@CGoSM}E44g6MV2Fp$d84YdAz`SO z`;ShDUAs{Uuy&qVpmwRTH{#hVly@fAgw4D>C!0O*M2-Y>?rd1*96Mt`obB%eJXXGc zBfs1!quQZq+O1%YjIyra^XQFd)bRmk^akW>(H@EhBb*EU4LQvMzN>l(voCu;=1_M5+Ill=bp+$C9lVd2QHNp70hbznku_y0q1oLrm`!mVA=x)|51*znyG*!hjd0Yu{hpL| zbgb(cQ<$7GZZuvpt}kB2WBZ>9Q?)iq8+ge(qT{;=C=9c+NSFZwZyB>W{u!c;uhD{6 zrja?AJZp>weL~CBjH)9T>AfN)G(93vKM5PesY_D+F9zEPrn9mG;m=UxblXt>4O6sq zu38e1m&a#p%a`aYwCzYr9yNImz1FC+Y9uZV2{UVJ^{RS?V)s~>UpH9)d_Ggiik|KE z@tnTxqnG~g$y>uu5P|hFg)Vbw^a)u`5FUGi76%F_IEIt5!}*?zodISy;qYV-q4Lk( z?JX}au)+=AxE}V=+i8p5Q1Q>((R7X_rgH|@APWvBTV%UK-&veFy*!?sMX`Jf%X%qU-0`B_ANg)IspQ z%qq=(7oIih#>qSv`|@)v)i$Ta_n)QtSQCPtSrYTO&ko0a`&1B)o{nW^Uv`#VOoBTT zP~Ai70gh0QxjaUfEwjz)C|0T0s4Z@Fpfk>VsaWjbGdsqQn>S;Kp0tQrz|gu~5709s83@mxj~U*C za3HIG{j)I+*3_R;g!=j8dz3$t%mOoDe*+`ma&jc<2!TdU*H{{4SaQ z&J^|?g6Fh30O4PP-b3L*;c;Y5zFWPs^%CTG z0^*;ATu;M3{?U^Fd<9;5%b+8$<1hrz!vBXPb`%EXBozCUO+OZ-pOo~s@A5v@a^Nmy zJSC;vu&Ee&L7qqDc}$)sB*$TR7oX3=lOZn>WDR~#P{|xVNpTm(8Vkc`MV?{ygnXVE z*LbRsG1Q~l^gSH=d=&p>jlYP}89o)?p)JYDjzinx*wovU)=17^_PEW22-ypIM6JJ6 z)|o=PBYsybV;AZm9dnc?8w^ouo&ykJBreaG@G$PDBZS{E>S9e%V(bxSfx?L=opUls zBrM2|B$acz!snX*7uyHl53|*tYRNh9;-FVR(B*L zIh9|x-`Dq4<{nm8DM4Uzzsa{{3iY8@hF06o$=|)6%gsB2Y-^a^t_I&``mQDI4@m}5 zI=Aw;K{he96<9$Irwfn2*EMbXj(!Z=lW2N|&xCW8)oiJ5I)O3kQ|) ziQQyB>Aejb-=UMnsbGDU%sBw{Ms3g8AjK@Gfa9!TCA``PaXQbTtPV0PB_t8e8*yq% z;t3XDs4eum$=c6p>%I0Ko3(j-_RlXp`&Niu3*WfEZ>(kdG5k*dI8M_e9aJq-zqqV~fngGelVNc@WPJK51X_QUWXI;W=0vbLLHB4o*j+ zyf>`{dho^}ztp=~Y?`_02$GtxUD*=)TO=aWzDl%-&sdrxs%HwBcV8qLYe>xFHEILX zB!^7?vHZdtVO#SxA78TU&$cyAhBc}%jO<{Puw$<4)LcWu(_s-qNYiJo38ixC%VQBZ8$6=~=#+~7R%9!WwrzObj zc&P4qKQ`^DH1h^UW!ZSuO!zhJdwS0t3g5cR$=-ubM$$4Z4;`sVkjOF)%m(>#7=!0n z4&Ee^*_pL(_YO?W!(q8uRdvkp6kguh8@`CV@c4OQ0Jr^;7qefob`S4C`Ojs`zlSgS z!p`3czG@~W)x(R6w!a^cj#NFIPwbn+d6F^TzAij6i2A2&-^IrYchWlZg+t~Lu^hhV zm;Uz|vif+H*cAM~Fz&Ag6h@daHSea_oR)vW_*RAYS=%$&`&@K9Lm&9k?=Sl#xDtHZ z)#%*{b0BNz6^-5rU!ERb$kfcd>(}B-e9gwcJx|Cb|6Hka@8yb4P4>XTv|NOtmi5Qv z!+mQSq>Dr373bpJ;eWfI2E~^zHsorPj;y(RYn;n{_lDvdVN17vhm6dR@aoV#BDAM| z$+%lAUvg&X5Brx&rDE{LMwvXL%;ZHA3PkWrY`)A@Rm+BNi}jCc176&hwemHiD%XDn z2nM!QFbm3fcD*?ji>(?up6P;xra7Va~@dQX9j|6f?Q@To0L%$uNE>n9qgBblxhS zh|>4_F=hvrVV~QsOq=WA_GR0A<4eXb54}XZleKc~ci!A5yTW^a^0_morsOVUbAJB> zi7Ms_Z)P2qF<-B$0#jCvas>50mH&l^Si@_h%#nM|>9%Y0SpGXIt2Cc=rYoVeCB9r5 z`M3PCW&@5*m1dsJ;$xTTYcJ6|*_$}b{u8jW7NON=V3c_NEdY8$%hqF1$9X`RXa_q3 zo7h>(h4FKg2d!Dp8TNqy@$oNFd=`F>!kh5c=s7xOfwr}1Q#)(WP8Q87VoT(;XzOYl zcG=}g`#-DP~V}?e-}>^XglCx@{spz@iQq8^*s_3|Ou4cmw9GfJr)z zhXev{>{*s=nvR_`Wh~7e!~>^k9H?){c>SNExPL1qeAzf-Qg0QGqxAZQ5830N5yW?5 zGe*?a`J}Ab7i(HlGLf;T|A$p7VIDh9I>i|p+eO%5E)e$O`Ekw^j>PHyJUIlpW+*?~ zO!M~^#{4{HJf3Z4PgsYU4C7%Pg~yJO`W*F|=c$Y+{pC3m9$!0XWiAK%kR3`M6-r1P z;Vs>49+AIq%A7rTj<#MEPtDcw;QIa(`lF#HquOC6+Xq zu~i`s(D|nMM69Q~%^B9?sRzo}-yYPNv8=0TGuiz^(N-KNCsSku=BmhX;UY36)aAh0-e zukTSU^Zl=~@I42rUM1|AtVp9Ur{CpB{Rb#**c#{^SrA&!KlbNzuKu;HcE!DMZ^mc& zr*{vMdFNp=?>u5i?4k~ z!N2FxZ2X5~8Q^vj;Y+fBiw*r|sEk z{p@n1uL0>xFK16yF=ejq+e4v9fP0SY{N2J~ z|Ljcms4@1!<=`9DV!%6VRN@+OUnb+oLE;{~Nvr*A6&ef7#W)^NU5@bbs+pecJuV?! zka<^!$35pxMzVlm#l)tcPV-*a<1a_-760CfRH!MpP*!BdH0}OxzQ7A8Hm2=wJ{xk| zX7E+>D*PUx-`D8(75Y7h?YWQ@RJnPRcVxne3*G3cdP+wD`s|>u^g~`XPHIK(-{LjLH4<*rKNw zE*x;SLvEXG8)rmbIDBtc>FNpMWm9-KyA={nor`ICU-6T_VzV|+DrLhBw{2Ro)oUrS z-)ptZ@-0I0ByNF0{liYP?MvRw!+M4=f{#ucdlGbf8tP`b2(CTmVD5!5VELog{PXd4 z?JMg-Z{OxC_v1&mA6@IprHk($+*$3tIFD5=OV)WT=~6bn^`L&9^PF63v#>erZ2L9i zUq8W@`GitA>uYcGKxpvm8*%t9$+NDdTek7xttQ)5=d?vniMGROPo}&N;L|PPVKV=s znJE%~&gZ!6W3uWQ zV}>;q5BblN0BXh~2;+m&{6*97cf_mVb7b0o1VYc6=e!yZWoj&pX&PRwXvR-O>1OyS z^~<_3kM-|a{7$oRC(k=BAEoONRzo^>+I*R^=h6Ci^RBD!o--ZUk9a|-yL-;VE|XCD zW1E)zeEjx?Hg%@{@zfHcx2TTGKaVsTbcY@ zRrr+sy4}T|5vIHFyzlFuUF3JAZS2~CvGyfl&Fp4;`To8jwxn~e#rxFr4BsZtZm3kF zpGOo512L(DSXXds)6N$x?Hr+%mdV~ulS{xo9^RkBq*S;gp}-d{g7};^JDnmY6`#Jl znYY>aU^}CeeA9x4-ON?HudWrU>w{CpLZw)u$nF1F-e2ALtHSs@KZe(ekYnTh zLS@&K*@wkUVEj)DmEkEv3H#7hOm*Y$O7u?k_z+gGIgW)-U}e>tTv~PGzYIYo)ti+v zy;t4%UYSa=f$`1nankta?{P~uzYCRZ9WLN2oBtK!e=-X3SBnsUe~@SEMW|mB|4bAA z4E`zbFBJF}@DCd`fDQf4;=}|bB!&Is8@~_X-P8byXd}M2n*stI#O(6%6Wk{gWBaSO z{;&YyZ$W3hUZU9K06(kEGCw!hhVa#WrbO@3bMrhtr;5dW2K%p2=2Yy>ifala7KW*{ z7#g$f#aP9)4Wlw*cfKt{xB>6o{vIS%Z^C!p{`bY|*4x#sjWShT-7Jq%a&_~4_%~cC z?yuI0m5JhzDHbO7;)r7u+E>7`cNrMU(b6u-1RX>T-wTZ>4G0k1RvE=9achzqG-8vA z@O=OpG==isatSj+*TO_950(nmTVJd|?c*E23tvFLL;M&h70NJL|~ zjbVE=Z_)KN#)kkyZeE-iFAYF-eq(Wd?=zn)4VK}P{K+B@tQ6?^QfU%ip}!*Mg6!2M#0N$YXAM9Y zds|*O3-hpot-SpQgQi%VC=by~jNGd; z{zl+$H~fuJ7yWb>G;XE%XrcIM5lX49KpcuHK~Yc}H0&LSVxDIQhF}~^GLFxbMyl_; zK$8zXa{Ts}s~g{$tZw|aKY95VdIpk*rVJ)O0>hihQHBKUqK%KRo|}m6w=TjA#$cfc zzazy;_4sgU0Lm%jpH_?btuns#&-mJLnIy-#<2OFqjdM)!|3@Qx3x>kHrZ+x zuM{ULpWIvIc0F27^5;g28=1= z%zux%@SF5`-^69M`5ZvTH(vx4w0Q_H@!^T#sa=52Y7^x$mazF^d8#meE2(a5Vhf+b z9R}aK)f}JN1=#@(dB$(8KuOTB3cOS-mdmifAmc=FtTY6fVAWRN-CbS568;hv%Hgpo z{M8uNbL(rkV`Fo0U~9NQp)E)p6w5GWVK#q_@BvhYpRhSYji15BZ@h=txdJE*Rsak% zEQmt6QW+@~E70>V06v4SFA`dS7@-A*4iWCc!2ar;;{{rF@Z4t}g8kz+U{29cPF6SH zoUGpY%rFBtCoAw#6+pEYFWjEdLCa|-e2B%}dIxuq$+A!a z1wgZ7yRqys{MkJOW6|WwDkVf+m2&yvQYq-1A~p0)AVqvAe8C@gHo+=<?-u>-QRz|7hF8okKNnFBw9X-1QA<2@uYFbfk$nwg-M zWYRZ>p$2&1YUDz21a3cFCX{s(>W7itjT8QW)bXj(piJG(HJPmRm>ifKEJ>)W82|@P z4#Ea90)=m`7Y55y0|h_^PpxceY*_llY{sRgLLO~5wk-#;e!dScV0(=iWXlbYyfo_)XKDEP=6(C020k3WlQAZ zM-IX_mau1wyhlK&RN4izb8--gHrPG~%M>e9A7JNHS9U{=@y(mn%}w|Ra~ehzcFE1Z zsUY^M436Mty2k)&+XS5R-SJ!RLuMF2iNjza9Rj3i1xQh-u)6tP8Bs0{^dIgAszw^Z z6NZ8nDANNELzF|+5~60P4}S^thdd3-uwn%L{^rxAQK$ou$shC9wedYI3pp0yT8NL4 zFy(=wE7jYN$iEdpKPx)nN0_7=87BOQp%;cHfBf@8%}w<6j!U zO`t%TY#8C+kx5O)WwtptQ5w>h{7GDW7G^MfA55nTv7d|>|BH6z-;R}bO~Q<;ZvMDT z6R$|CiTxD8pI^>FKmMY)tl9K zC#vsG4I=H1m=3UPMK=6rCxKGg1>6cW2Di|O3CMkMj6Mi*{636Q8Mp24W8f2|!Rou8 zA(D;(xT-$D0PU_2L^fDJ`;f$svV9UZfp?#-OhPfwR^R=+O&{O*$FkOj`^?1XRDt5i zn3gE?s3B??USP=g0U}5pv+XYpO@sprwa}WLSS;-hKBuSw_~(Bj1$d^q7^5IRKexCN zW~_ucKT{eCtMsa}Mc{6Ao7m5HU)Y5^y-vA*8AM74_G#pQR(=6i(VazRF_0^iuOzPX z$MVY7LuJiCvt&1Iox4kB7qSKwSd}nnM37ZiCb2shivnkeld_Bx2}6J+kcKSpBl>rf zS>qcR-g*dD5wbe64R1YE+y~omG1`E~_ZAA_);y~D$8Z1jexPZyO>~FG9eF7Qo|9Op(M{Cs%ByjR+5OE1n986rNJORQ7H{gPH^7xgmQipqg2ZH z=2Z3F*J(sQBwp?>ftMrF_``CA(8d4pDTuw>65432x~XImAcP-|dSFB=n?HoWsF#6I z%nxB|RB^UKZIbpR)H>>gOUR(~03iciQr-NK^nJBCey7D$`wxh8`vJ_`3N)-VP%Iaz znNJsC>)nOV@y*W{_ml=1Wj)QqjI8B5uM;`?G)jAb8<-d>?Lr=(dH>A=C5l#807pSH zdHN3Wgr!zkVnv>~kCZE8K^n3DFCZr|L5(^9(;kb*LiPeR02qUI7nnnvWnuF<@V*4z zIgSBr=)1pBE}4Omy(1$dI*)|w-z<+B+04c_K46mX0~9r2i%`fwbmIq<=>yKEGxhXi zfWL45qtV{eWnv32oGAn}zl?eueVz9*1lfe8gWN+f-)E^35{LV_N1E{Vn?a z_xnnNZaYHi4R%r1Rgd*P~MhuzW@<4eAIf=dHap2_qW+C+ieECIOZ5w|K|A2-l zBcn=kOYYAy7G?0Gk@Tw!!$O00L&6aDOZDPDD3iX|D;GYbGAz;&AX18ijake$g1?_C z@gPEQXngZOj&J_X#DwN3Yl;TGt%2VGgoHgZi7@yh4tWS#1&bO+Z1dZYWuR0T7=;nQ zF~U5sXsH)q^aci~M}W#GmVrrOamD~{!~+!;jKUxfV&9ixjQ~pf?eSax^b62>ZHG1k zTKq_9l&DK=J5>97_yv>L=5ZQXZ6ShToRHxu0yAGmamvO&FdvT8K5*X5tRs)5Jb4i) zs3No0ko)_i7z5@R!$`~%w~j3V#%vdCGc=LQWtO{_S?*q@t^u?#Fj>J5E=*P?VbTp& zpCwAHf~4XIlE&2Oh(0EPi6Yrtb?dod)Iw~22SR01AXGR11VDtB$0l|Io4q*Hz0iqMWHmTx;4kN z8$D5Uw}Nb3b)`5#P5Wp1{Ybmx&ouBCBlt2R5+rj7wQ#^fzJ&os!&?to3Z^=Bv# z*&+qe?LlOh2NZYzOmO$lU~r1#TR5UHYjqF(S%ud4&j|7SXOtg4t@PIJArcJ&r#=ky z{?_iY?&qqsk)?$#+bu2Itu5P4uu6#+@t{Kgw^vV7IBlbJx^99 z@p=0nk>!w_+FHm%;@Q3X3OE%|ScIz=iXse6q`{jgE-6=UeWpU(HDJG6tMHG==Uc1N zJPb%0U;(J4IE-82);Hl_2^Su;iaH&?XX`u$bTr;3hHvYeB4Ym*X-M$hw@J)BSwYI7 z0&5eNcV+zcFrd}y#bO@GND2z#m8-YMh^Lz)rQ}CQc5Gd&R8)IaM*L?Cpol@(-GEho z_y0tm7*YQKzIS^+Oos{BtcWbT{aehcHGvGWA!s7}RJUpvfL}-xWdRA~=?S!_C=qY} z7W@<1215!RM2%Gi_(J%!5k!?DKg3oOzS#N}eEkHjY(RpO6XPNtgI5vfNl`zLGEvfY z`?rR1PsRTR=(B$fJ{O-!Mf4KDilZ{LiJbTCKR_+sJ`(>BHl4t{7e~goT7c0b`K2=%6~{ZZLL(MMggT-AnK>KR%jqMXq-22xn87|`}YKH5E8ge$n^Fk_I$It z`R7cnl}Av(^XCZp(;=9LFp>jPW{mceN@Yy+Pr#VLKjGZ}MYYENqVku2AzdS3feP*d zIN;Tr<%fyO$j%k42lq@A(gJz}CV*&_(b52-{f!Ta-~rmJj4BPBBLB5QU+_mXy$+xl z;P&G~FmmHtYe@E$$G8537RttNBZt57+wkHph;ChkHHH*9gh;RUpP29(86o)YyiyhTM8`j|j1fq5@>)B&OhU-1ra(;Nk#mq#xpBFO%eJYm+rjTbtD3|96Sx*S8N< znUqjm{T}?I)*r?e-hPf(%8N8!@9A=Uugt2C+plKiyN?!-356WG3%qAbrlArFpbQj7 z5m*x-TW}pWk)kCGTL3;95#rBKSv53CBq)5>Z_>W=L*$S)K7s)C#&7-tjvI37@4O%a z17MThd7-R8mPY)(DE=w=AsF>L#=cd(gFFioaC?DoR{b)DglI#J!f{qp5A9d|x+;?j zjEe0O)oc3-MN-AzDO1*Q##o;Io%DQwLI;Y~;}(TZRJVQ?miR>V=9n~s*^fQat(KsL z-U9LsHipT8;?MvN?+}vz6Hua~pN9xrOfap>Bq5MzzsGwt(Uv&B?krYVUxKYF4wd&H zcG!m+nB4^0I}`zmLnD)jTtc7?jleY2Fm%Z6uRvc68^a-kdk5zEVrg__M7paCAr{cv z7p0rLxJ&pEiJJDtuk4NADM{W(QJQF*88v%kWS<~PoV!3Lz`j0vzapGD%G*5JQ($Nsa;qS-7I!K&0_L?J5^Z zcKAM#XYb*zh(rqE?TPU_dr9nx^drp437|j=1v@7Z1>M<;)&;bPDC?amR&d~}&Q1Yi z`%8JdBhsM~qH-}O<1J_eY*g?lmOoh3rjNe0$DF@48rqIq5$fwqbr4^Dx1UMPuHmfk+k z#S@A_>`PEswamoea~xW-pUpBPKQlU*#v8a9iYAz4JO3$n_oIQGC=x2JaWh zyhtHqL3&BBMM*NU;tjKNgC8w?rc}0Xd<$|wsBB*^3$Wy#(9%Z>W5Fw|tFzH6eQb>} zCVv@=y={(tm_zp>$x=p{;mtCt>ITs24zb{yWn5`MqEt{O0u;)|M??y24pFp%`}XAE z2%vRT-j%C?q?rvK0DBE0FFi6ce*2w)QehZ(uVL8giuM?&nVKv zyQ>#5yc@$~93CS&aO0=2cu0?U`#T67C_$6RGzhWe80v*9KqdYJ7<1SXelouGcjH_C zFoec4TYts29S|VYeuISpf5TRMTYtq%hl0cu{0(g+KOr^tLq(L3+_`}vNJmle?OiCa z9U#a%FA$~r{vM==|4KkeKA{*FwRUCH(Eu|y0F#027H(Fi1`AI2S{^F}QnwNdL4eMw zu8$&PF~k3eikumRYHmLQCBqLj0rj6{qKj`oLfZ{I3C{x<{+)C*+AtpZB-N&^8}WZh5({-u-yfjg%~AIyBiJ}*ws6OLNA~G|9wCnJ&bO;~erGQk z1hF1~08^#m@!MZ6x*Vzs;u!3tP$oRRS4O??5tMrZb;B_)VgLBnPYXfZf8V}ASZwR3 zY`PM@VO7b{)4Oo(SYyDA@L>%AH)sqtJ_2^-Be4uc@%wI?c(;E;K)26UZ!fCh=tI@5 zM=<<9!wh<;`cBz1D1BDK8^2NA_$D%bk5sVun^Z9pMZ+pVy2%m`*j5;WGC_t3G(_*0 zB_r^mL$Gqn@F$AAJKs}7Sf~j@dxpZ4T|>}tV5*>A++SC!#16vNz$Na3{{aCpJ^!cj zL@--z-5kZ5@BEKii5KGHIsFg*-}c@HFskC}8^61OWD}AlSv~|@aFMToA#5OlKv6*g zN(+d9)%MZ%=_c7EOZJQ1jS&^eh5*`6^wHL~+Ui@a_EF!zT5R>HTKZP|Xp4#zA>lJ5 z5CQ}UU-BX7d(N4;ckjJ>_aoU&wEu^j$=$hg=gvLzJ2Pj_%$%7kg)(1Cs%aJ3m-1M8 zHk^Xl!NDFrxFT>xr@kDB49;eRqs69trrOBoFpcuLEu(yH%gE=pjH2FT5Yx@&`a;7- zn)M~ayN#0NBUP4-G%UsMh-R*shFtsl454t*o|Z0#Xcz<0kJb%r z;{;+f)ysyB1!?Kb#E<5F*a#9?e@e!m;MQ-XRvW$4|6}o`*aq<~ic%2${l#IbhNscF zL};ECpLm*e!*H-F08Sji3Wy_E0UFr~454|7zl77q<}C>tF;o_DG*_X`+PNXGnb{$k zB~pnHlZzO|yK?Vg=uo*Tk9?LqGW&4xQWh;;@&U1I<VsaQ!lrNxUw$uIMMog zvuJ(2nFb(CcS}u=p4(Dyrhe>`j6yxF1*qF2jvD|(AZ~c|Ga9o(h#MhXER1?ZxG^I` z@{;VZW}#xSnZ4CiWlZZkoRfgv!G6%A7t4oK(J2p9yEcn;cJt)4equ*GlwbBMcHhM( z!5P!x#5v!vSwA+dAC9nXaCExUV9+<%iPgCAUEr8t1vqSMfY4TQQ(GL*9tJ9=ec423pu` z#lSS?GqVt?zc_T}$^iC4ubF0&IfFWRQR^hVvi@y0!SFT?xT0|^pO;4tbfQ(S0j;Yb z4DBNHX43P5qOo!?O-M0gmz#_fMw>*@-q4AQV%BCd(?Wb&00kK*jmgFW>W)6k$i}yU z95nMWn`z!{O%BdQo5|8)752NxD1nVfWU-%2_@Uqn>^g(}7}yWaJEXC}22>~+IjeYp zfzJ=2wv@9r50%`MoVA4mKnmon-!>e)2J{%Etdcg03Dm24_l zhng?mf+o~86tlnn0Bf?T8;q>NZg3h8=k_r;$H8vljdp$mVho_>eSHUZHypf7K}mDb ztQT9V@Cg5XkN-Z$e%GJDRA^*@#sQE(rYx-KOP!%PADjnOn)~H z#D1=0kZi>Q&H_V8HS0}l29c~AWF-5O*=9YB?Bik$sF!#iA&`mIGCecJ$`tzI%(wyn zK_@aucjzveN2Tf0$@q2cZZqpMtle#@Ya-d#G+1QYOdw=Gzh#=)k0c?xVus55nPw@A zm4Pz_to~7n>_C}q3jW-*D#HQ=6+CrsnrTe|8t$avq=i1!Osbt^)duC0b$e_Y~#fGha>A!tx&yYwMWKr?$K7Z%#=jEpQc zzlFsC7rl_}OMuz0JZ->=hxQ3{`H}(WLeQRqE?;3CT3oiL%fw|2=|(o=oer5aigVrT zcI(6$Qc$IN$H8i5GYA8O{;A5b_kL;e<#M4Bc_Al=OAU1TRJ{>L%b%47N}1g_`Z8H7 z#)8F!(2rAiY#?-yxYSEeCT@HHEtQXGrO5`nX5mmaj))62Fd zm~#Vcc!xxK|5W95HXk{W0u17VL-~+%XzWMyV2=mi#ZA2X5$^0E8ex`_LYo;Vdc>~v zccSSIT`kPve4)Nj~;_MjUx$=8k+WhOI%OF?TZhmdYkyw_tdn zW9^Q2o?rQ6L&2Ymzy0#mMMZT_3!??0Pn{qKa`{vx2KOWLDy-#55nD1O%UHI(CJ8wBN`JoTnYj%GyA@$n)Up9Z|x{=qM`{u6K zw+_4S#oMoaeb%e~f1i{x?$MEbJ;&a8aOo`n&UX&)y5)Sw(T|6J@cqZ{aL@h6iL+lk zaLY|=AG__viT~%mHQtl2oqKNl*1wN5-q5h{XGNoSTtD>s&;GJ{z`)-E89<;8Pe@&# z6g&xnLFh9OeR#W1Up%GaDGg5sJf-6)15f?%lqpblaQX32y#5l7CCT4hWKoj$4oQJL z>z%?>WwPRaM-v710cP>T=Al>ALZXuZr&)qv{Eo0vSSXYT<-#qHzgv`_9@F0T+s?N| zo-b%^SIu_58L0Ic*3t2N!PON0=~sjJUD!TZ$Q>h|`r|1ZPdRup;b{P#2H|Nip02{v z5IhaT)75yoAKu<)l(0(BPY}3OwmBu$v>+vQIR4(vr(V&t8g!F2PeND;dS-#gg=0Fi z@bnVuEzP`ZZREyP4X>o}b?a$-nQU6>HFYOVYwG&quO3n$RR>j$5<@Cqa%f29)fAGf zdk7chZNO2Pk$4(Ib~?1k4(|q$IKC_oZx;+o)moXBkt!`s!>6|3iAV#n56|TUzk_et zs88*Szi;r~8ycKI#BG?p(dgTR*)C5{6~{R7jSKO{yLjUbJiUak;wyac&ie?yTJSV_Kx()pGv?#?3Ao&(x z)KBq*lm{Qvr>5fXlX!Z9$HH0CRJ2W`^Ak|cQtpL*Zp?H~?QvGc@V^PHLDXQL1FG!>3#u zHjq)9XqSU2Iq}qh6uyVabl~M%c&fn@6pNg72vz-gq+%6h&;eKLmx=6MTg>YPQSuZZ z(HHZ)rX5j-WOLTM#mGQS2g24{Fy1q4U^O(?iGi2h_>77f*SZl_1j4Fa%@IPUE{s0O`1L88h8*XTQ|Y5PMFldK8|s(2QV7 z!`9*j4Oruwo)AN5*qScHack)g4qS^DG;$3T3=u_39j1a9F$S^GTTyfvxzHk$Z$8{7 z#mbei*_h5`0K@|9^~jrddD$>Zkv8)XJ!1150x4BMtOusGR(Ni0o`EyPfTemZ)tgOt zqmZs|K`&Cf76saRC=WRgVGUW21^6KWPklJ7)Xhi}ck_VsvF5M6gs1aqd}TCp{4p$X z*%_(QvQG>Y`Of5HkmLZyUWe?h!}1CJvs7s%5!^tQGhZ>DW{C;b57cK$UM5=}%ES{E z#9%Jc?nEEfpJ0|4l~zq)2%gs6i#|#gxwWn#Jyl#PfH#Q3@8JnY-Rqu3UqF;-bh+-? z95LO8WkPq|3zP-2mrv(oC@lU)L#k*`4Oj1m@pP>AI08VV1H_ z=A(G4S&I6Ak=u(xcL(pBm+m}l5aC^m8DGy`zRK=t{hFSTfJW52< z`a*t%Qp2=k@?@;j~Y}|HWs>V2N8nXpv{DO)EDi&1XX!tQbRUFGiLN{~9 zK&MCc0;BrUC{o|B8T1Qk@YkY-5*$d@^)w%BHiA~Hqou0mG=a>?&>mlJhJKJ0blwqy z!K%~iOm~l9<1UM7M;w>YK-SpM|INU;Y!~fNL1E~jX{zDobgPa6MhIz`2K@H3>ie*e z5xR7%K1D~qENe<%F?58!pEaeAj{DQa$>f!20$xo0vl61iN(SVsOjbr-$p|5X-d2K? z(!CPXVj`%-XmSyeB}8wgr7wAjP#!MQ3~~7*!_EDyI(~12z%o(-zAUT0uNXQ)$FfsG z{{GM?gzk*cvrLtUnSy?Z$xQEEoGzrG--TF0PU?c0RvjD0!ksaUR-InD7$E?;db1JK z2h-h9_65PTpf7YqObgN&oyPu@1EWz?C;CzL*#0b8mQ=}aar^#ilbfQ%lk z4RuHonjQiX7-x+W)B!=q*YHaQ3JtGNAQdk*m;4f$zRkj6Ncb^Wn7Jb>h0H(>El*w| zklsW%W}LXy)7S5}A9ljjXt(ztJG@AT$M=2@NJL{hOH$9we!l7VtK_WaP6c z4KLAlNtj)%(q^(>MvLt}_+w6E^;ge-X}1Wp456#Obk&z%8Tqe)LJj;XgRV08RVH0! z@~bSm%1UQfIdvD988H4*2$?Aw+5TI_NVe5v#mGj00lG#OR=16;wANvE*R=D3yfPDO z*D4IKLY@U~J&RUDpo9o|@)@XHz%Pz9;|-(G2gNP!G-Cz6^cO(qy;IZ_;oTfr=;1-3 zD4`+h5_qA2{WCfn@kVimAQdNE>aRzRh}$3$;JjcVH>m2C;ElEC>Bidgn8r*-+GPr& zA1YJ$V}$pz!bH)FX&n?5qBQ0+(4I^$)2cBmTabgR)M+IUsC?-_9`8cxF{!$jjYj@! z2Ek7zhu{Y)hSSNMF7Se1bBF&vkrS-3qgz4akR@IzGTi!#s%vA|@_2~HZLpHJ>S8cIPQ&2*s@))L|&8Rn_fUJ8){zw|W+F>xTTZiSh za-`&Wa)vAnK|@arr0vH{4kH75I2IDThrhT#OBzaghmp1oNzrFo`h=d$w&)c7ax)p? zZz41I`hje8av-hmFUN)2xIfPuOoG2b;$s_YJGK#;3+etwc7G#XY+x4~2)uV0quyoa zBUX}Pd9+mkZL6UREq}Gp{vue}tVX^g0`7KTveM7+zM0tESWS-Mz_%LWC|nrWZ?FdM z8p)S!a%Eejm61kT<_4uxPagD3>tBOE%3x37_77|`8z{$p^(eeC2<{rWpO$li98EFu z1Vf8xH}*qO!6?=PJ?y1S#16s1R<@%DA!}qAg-$OUg(Vf+m;-eOf9f6#oZEUW@I-d2XD_3aQcDo1Yx8Nj&_SI$U*Q! zm&_>66l|ySmNYVE3qF&LHN6p`=BXI?i^aC#5uK5*9vsM|D6aO(!Vqbo1=%*-Ebdcb zW{oBMGBdooPF8|C>EaB#I73B8V7Ln0){?eY7{vBn5cguhZ4Ua0J1)QlvIl;KBvUACe+z=JX@ ze1IE5EqW;)_kfgv=tgrkDzDgu$tL+!Z(%jiLQ^spwn3x?Gl3I6Z$c(Uf~+8{;4;FB zdJ8vSgc#SNWTCAvG$OKP^#-OM;KCkK);LZY*f z(OHOVFllNKZ;AzpTUf9H3>_OPW(NMODVWE?^GE`)#WtOc&7DkegIwT`05khAPflvcg4yCt1mfivb zf7n261yO`1;cV><aIE1wl7;O(pG()*Ta4kBLg9 zf$3gGBApcc48A)lu8OhHss;L2+Hc>=c#GlngZ z&Z1C^hH*%ZaAb>AJTIG`alL7R;` zpVGLxUs_vG|d|q|zPa^UTf62&s`5-9}MdfKW&m zOC2?s!FSmMTToBc6Bfv7`Z3iPVVTvlHQE&WeL8QJN^bqYP|2+y7%I@0WCi*XnM#v% zWlNBA>J99Iw(T@INL6+ij0P^zsXwxA3lX+%3wB8IC}LjdwVATlW)dhk63jqBA4}4x zH(JuL9GdRNuBLcv>;>yB&GicPDGlTrp6T;QFQ0ze+a2b%lIJRPP^ryjL_Nu)X%sZOj1cSHEysIk|*3BI~FGXzFpOu2U>@23opJKUh#HvGXjk^XY6WBUAm_R4SRc5wyv{V(L?~ zb;9rw0(F8evkl$g7d35aH?lDOx~IfdmtxPK^YSTdMe6THA|d&^^?E%Ugm~OQqRfT8 z8XRp(;oYPRvgNsp_2%ycbb>Rob$vv&IAm@rE+L3|X%P6L18N_k_CsHQ!rs8H0{7&m zp;G*YQJ+B*WS~2xLIvt$Ag=+vG|ynw8(G<2)2=6hhPwyoxh0i;xOrf zq4Gc~o#Gu_QoZJ_P){QGEERe-TO$f12u))PR!PTNZ^;m?I?Sl0>A4rRmf_qFO`tGH zwmy(XCbP{@52O*N0YYdm6Y-711X+;s7Hcz50HFPvX%)yb=t`oc>20)KF)oV}Xj4fX zI!M77*|emUJn&e$=m&(^ZHSvG=)@T)d<@sq;W{NO4R{ItJ5%tvv}_z6f&lglFJhj$ z%UL1&b6jmeMbfm&Le|O3gl!1{~_jo2&bEduq7m`Ln7a3Bpfz@g=jUQm;OQ%}m$YPZp_mNyU zJcR}_93bSdQ{+f7&`1kh6Mq~=8ZC8TzZvWJ`eh-T&lHd|qBkXzlq2R(p)m`Gktvko zkdD+QHY^Uci4BWs5VV~QE48Q58b7l>laHDh%%=Jekpd&>;WUct;0v^ft`wplSCC@> z`~Y0Ip30ntYxRNX3{-`JAD}#fZVr!-sDocI$@-I2Z0b*@(FjugNg5WLnZbuL zX*C~2WBb9FO(iI*t=I)>C}CY8_$?u-N*GloM(nE5FZSM;2joXz?!#^^dZ`12Pt)Gn z6o&UG!MbOdhlZK-6!Mg)D6ZA%QT2c@GmiREe0W|*KY^nR*aBjw z24{V(sEz8`sN(u3ShIn7G@DlO;ki|Oc+Sj*=fqV`Oan!!A&_*U#ZAOd*5)=eWFlzd z4tCN7T4PhRC!`?UDkln9)AF&-ma1W90qNQ|}lrHYA&xYAAQ+H=L4MXZ^fh}H$ zV+!SbK$&Y;4KIj=0?2uRX$Z5$IRc}R@0NnzeqtcBRFVcJ>o7KKl-13RqUHo%_MVO6 zvH*j0i+Z#;KPUDE_33O=6%SoPiMo);N>$w7|8p%M&8ebCRBR;)6z)M znt)zf?oJcv)Rlb+TtDiBvNteYsDv-{p#YxO5fe4AdKd-6c3J0qDMk+-?11W1zXiC@!3Qhb#5hGp}V-LWnH?et&HCaZ& z27dXVJNWbj5_(Lvgr2WZV1@+(f51p>1X}oSWT zSno9UXC;TPO2+{YEcx|sqaKUD*@kRBZ1P-)ADuFObka`z=2SA&=Rb&jPJPfwSzWV< zGzUGt4f`SFW1(1j*JesHG@T^tI`uRLOG6|%Yx7X-tj%Mi>Up&Bsu?Zn0nTjDhOhz3 zM)3lg3I5_ge!2n|$P3&OgO#vNln@&xq8~k)XTVQNsvw}L2A5DSlu*#n>X@06c~G`4 zMcP^lhq1`s9UFQBY0b0xiNh{(Kkh?Dvlg?ks8A3nZq%KBRI_fE`zM@X{EjahbYlYC7-4@n2=|!F-{0$ zn~(F&>Dl6ZbieG-3^XY&E@MCXVNbG3HJcJBVcVOahoY3QC|Q)ac$Fd06gkE<@EaIr z4-J5KP8T`Xp^X?D>KA>4$wtpRZ*4+Y+iQ|8apLNfQ<6+>< z3aK2>{eg&lOb_RTQh4v3cEywV-ftuFaFs3Z1#x?Ly>wxeI!t7!P4e4;`~4D*O-u!85}RX#S!#|A ztRGfIF>qIc5XuchSQAO>QY^G3J)0JC7^VI&synm;2~e0$6CAuXz@IE>k52<@y=i>b z!kP>(dC+ub5Ray?kSWQw=u{T>7G(_l(2ia&bsDjS((%PydbR)uTLN7Q7j{rcQ*s48 z{2Tk^3Z~*d2Enudt_*#1@w*ooRsvqMg2*K+h+MLQfU^ru!_DZs8&3<;b49}kj1zo; zVm{N?fMx@RTyf?%m#hTv)|=@DX&MpLvr7sgtyV%g^-C13f)NO4HWy`j9h6J%D}yp@l_P5lg?*|N+A^WJiTKB-fU=u zbj{MOU^d;d&?{fZ2tf;-3n?UzQleCYvqBFsa9<4tETGsF9DGa!%aEE&W8JB_Yz&)z zo}f5SBUqGp@GPA#(D^bEqZ2b`pulE)&=hQ>i!Jzg{aoqI^#emhT%vmdo$1kaTM(JN zP~=QX8OKH`j13D?{9+b~#^17X<-=`s+ezmJI=@Bd8als==XIR`X$oDR#}_&%7mxJG zh2|BQmb2z9N}P|FQ`@uLMg61~ua#gf}j>FuW%>>-Ba(m9XH*Gz`i zd#o5(iN|+RIl4^usjNWQ{oi$2(uD|QBm zL$mvd*VqpbVFs;U%GJhnF|;HUH~5?(m#fI3n45`qR$HD61ygxkn@49Vr_in#$nqeU z8cICVL(rPxnaX&OK&yL}%AW%=H9(i1E6H{Yd=>)*1LI1_ql03MYkBDLCNZ}L#(y0~J zg3_|mBKx%B3Tvqq;!i0kC@P#wup;*`Sj(&-h`t<&vA zQ>PXc7TKmwvlmV-o;=w)Woq$Mt94qDt)OVyRQq(Ry`ZdcN_pWFyLIvu+vLKs$&+n` zlc!Y_7ZpvPY=fuEY-N+DRuoJron{Bm#Rul@q-zG~eT^oMeF#updgmE{gB)TWl7HQt5D4T7Z;5g~#Wzz{!%o zXznsgts_un@j1$>FpkCNsR>{_o4efNvbk-Qc9-29u$0-nwo-@F5pdZ3`5Ba~zsBqJ z_yT@Qz-KFWV2QLj#nf+g?e_YQk${%pT@kv)KqW?0||odh9UC-egt@(T*`i>DSA2|_=ekjerC zAx9@<5}WQ3Lxw|%r4Z!2q9Ep51>s(u;J@8(w=DD7%Ivw4kg?cBAF&kK=(79$Kx3Z8 zYXdm_7EdXbyMMdeV)Iq{$HVPFm8aa|aQg#xTY0`^q0LtfO!budJx+VTZYj0H`|U{9 z6e0`DK2I`4MTxz%rm{DwsMQHReDQpDh3Bhy?;SRuyEoq}0zKE~^Z34s7tgZ=Y|h?% zaoyuOq3$R6YN!Lb@V~%*j~xUSp7Si4g#6nAPnpf>xX)JVwC7gXoPPWGyW^xTezJZ8 zWIa^_WXD};6UqW8jc{kFts)5-tJVn>3#d%yvsOcVaJ zJr^%AA*bD4iGGt#$nx1M?e|WEcYrPfk1x;(H)8?6+36{@IZGV2O1H-keD}|RH`wn5 z<--F(e9$1hy+v)VwF063|9A2j#0@CNZtL#`W z%5~y97eO~E;ddfHv&+hAd{o(?@H2eHpxc+tVffCo`2+kusz7*2_n<#V`w`|K@?xDZ zh0<6C4VxWg!UBieKG$6i5_h4e+TjE^6rPCcgRG4tp&oNZq9xj5b&&G^%W8RECq4#6II*J@zX3T*C zR^h0`nglWvADTdgGrXYX%Z26~>g&}#0;<*zNXriss4RvBdPeel%W6HLdp*%wuShie z)_Afn&tegKV;_82XOH*Qc{BzUXXKeWVH#`R=a*Qnx7e?4it>QDnXbbqc7D?YDm2Aor3KhJrO^xW}R>qy&4JSTF(M%>VTH%j1~hH zRl>^|Z?X^Qgj(v>l~qJ4YB7Xx0)=V-NCB~`EwHWh)C5?IGsl0Ac!{DC+XV3%MCDNC zzXMwQTYw_FZ??O9p2tJ7e27jM0Qo5V=AAAlfh0bMqYO(OE@)B3kf9){KpajaMj$L) zzoR>SXonniW2_qlLJ7dIyGoraC*H#b(pY0q3OOow__)FX>H49;X1B_aYe*dC1=?00 zypN)ya4EN8G^DQFQ&xi`SQBe}4%Rp`%F0;NE(o{jgay>}L{w9+& z0L)H!_DQD_dnk+&9C%`cK(P~qG$?MBWuyV5RF;>qoK)60$^~H{NL+k5A}djj?LKv1 z86Y5R?LJf|Fli{0h0E`CIf)Lg!FiavfKWO;?n;IczRXq5-|9vWrscNRI-y}_s*9It znE{8(&d~OQ8fkY!nJ(vwWtGPlV9C*K=R{~H9MG3wv_PM+%wcm@c%0=TzaS@N)dB1@ zu=ha)^GbXUP#*;o$EfVeZNryijzKT0_A_i4MM(HPHXqAmnGJN(a^|1I{g}!es2n~D zU_}(6_pbzQx+c0&U4~vh&+WXWi5|G zfp=ioQWl2!t3e$gl-=7ymk3Uc&nbb0w`;5H?zt{+U?sb}BXo%z#JkLQ2l0z0~%SE0*D316P1oCKN2-A|V`~cJH zNF#@WGfP{7fqu4WXzY##M8ip)IHJvpquUZOnob?<%hhqEmf0t+Xno>%X{k=Qdnwhg z{Mi90TBS7sd!EJRFZ1}Ej?z4fI9*bdZ_S7QJj)zN2AZ+!-S!%g3r^W&)iO`D-F^ME zGJ9EZQTen|yKUOE>BV;H+-XyyBzO?RTo)E9vQidmU~!4%vqVpcz&&*o0#DYZYo-_e zmQgxkM698wn{>kU%c>lH3vVn|T0orEILj?=PXOEc8fXDyG&s=Lo6U#Cq+y)=P*WCa zwxT5iS^ut1xSd9-Ygsf zfnIoxFWoEpnCP0bWWhX2qWv-^F&T20t4M=)Y1!qipx{(MX=TGc?5!w@YXTJ$ivI17D06(e}GbAa0 zeZW`4!byKXA0I$o#hTfr9-9|goEHalsa2#}5?b$z$WJB@He)3Yf0@n4L~iyte!E

V#2>obiq@m0i{!UsB_=^VSU8 zcp`b2tSh5;lrJ;%z12sVr?wSBKw8Mc6w#gch_`e+y7Qh;bX{2VO7WInj9wXvu2)Bg zJ{7-}!lP54NftI#-c59gcTnDfMyGRyB4g0ivdEx{ImLU(xq+meIYSSWs~;$HI^;0m z0}!OdM)5#thUc!&fZL zYXxDvP8gpa^FN*+^TQJme%6=XbU5YvgNq0e&t4U9TCV`F)Hv1Zaz zmE>CWEgqlaK2-CZlG-da2aCzGR3|J_HoUI5`rwfpB$oJJxiJnjG$lIWMr=@(!>_Sh zPentPlm@YYvi#c&9VtD11hgN3e!cKQrXWD$CCr+|u5&>cABV8II(`jheDIA>EV9{k z6_nu{pre|LO*uYC=?!7fW(r^F@x>QkoH~8x*on?=yOXC*U%q@tcH@;%0%4tTMIJVf*GCM^uS_y0^2)wd1;~J#sez-QMw4`*I!o#yOhF?H4`G z5IDYSFGNs11#Yr)=SNK)^7Oy={qV&1=2l^{V;%d)I9kAsUfwD>xEzb`+MnxarnjhH zargS|5>S^eU7A?21=FnDweW$hx2@i`c=fhhSAV)__4eH5dm*(^%MV<;{2;iIk)=Py*?98Q8J7Nqi=U4#`vlXkXlg!q;!E+kaPi_K z&rV3tQr&h<^&xWY^#EU zaB$U!-M?u5GVGY`-zrQ0q$>UKVd-Dz-D`FpzS?L$NE|z zaY%N6`;^IZI>&RS?B{Jz%_F5hv*y!rti-C*-wN*?UA0%0{uo~?ByMt_f|UDv&W^wD z=+Tqsr3h`u&VIbJU77xNs24!0D*fEDt?=IP^hf&+0Oi@9Ge*y6Io{Ln?&y^6LN4xp z{J@7zN0sUCfU1WORqRxxUykXIs@kVYf0XYazyg$KdCxuk`y=wCUij;g0q&EVn-qcH zfb^F``psJD@7GKpk@0?Z>xRRZE?<^zH61uT%y$f4op|~t&l$@-#||I=Ocwt6_3Msg zd(L(-eGPm@`wk9ppV+whm^_hHFCI2}KLe%!Yc$e#Xr&*SzxO@gCQsqbkB{eg&oJVl zXnm+mANV^Kg{qprtbC5CQk4I5=P%5yYdU}7b14K0>Zn^wX9gqLv5J`#7 z!QfmcKq3uwb*R$6A+QZ_h$P=~D|bdp{~tS#kMJCZG|3$Ui3d{jYUhy;n-sF>#>nz5 zTs}+3na|GO@L-E1rNMJGH3ZNueAuW+e^ylaKOsW;{->I;iK#vetqi*A!y|Yr*7lJy z{n?84OG^J@l=NTzYum`>2Oud6YZfWlk>IEmR;7QFR{GG;PqcqbfjfWk>dqJc+(NGP zKmXkN+qYXLx^|0AJa?nWF)iZ9ziWhOFQUVzX1F;%)4ffgs!94u#g8 zb`(Qko9f;joEh#TzM!J@Z`e$~lh==Z#b$PtShBc8A+A@OoGdG4idDF=Q#W;$LNV$lU zfXU8XJN7E-!rI^L?i%JY%4IaO;RwmKDjfzwFF>UUbT1cmPw$e`Klh%kal@{loRcjQ zJSyZ4ggJgo$`0d8crN0}!YwO5mD4}bzD0xJik%bepE5VzzCG8zeVl#AID6w*d*c{; z(`ay&yOm^1x?E_`MmBVFP^syOOsU*8x}pgZ97`#~D{}2S;C180SAz?uZBo?^IsHtJ zRk_<9{O9R2XQQ~_Z}!N@7OAa1NJ_7UL+!U(F%nha-P7E5BKlkY`;!(8Y%7~$(!XT& zHqAbZbTmBQ9HKl#=b>vNJ6T>1j#}RG$G=A$a*>XY8{2!1el`jx8;HX}vnWoUk=4&? zjHD%z{@Y^FzvlV<66K7%;WXmMoLTAQeKc_2TC-2yLr*&WAOse#{xl~2A<9EEV;A*m zEhmm-9voJM>l@x02mLb2MLJy_L%BO9b3AaEv%~T8{qYme=%=yMy>Zen^`LKEy*+x$!53Q0 zA<8+;LqvBK4jpsHMpwWU-q(8a%=zfahS7hR+BHQMqSC*2Jax(Apud$7FQc3jJlJ(Y zQqH;o<4(J@nW(1UO*-sA2N0PflKOggngMRtg(ZagMnDjH^ zCCnMA1Kg)@-a+QB4IDn$akd-8Gx|Z(Bl?@E7DS|99Fjut;gNXgR}s(2_ME0k6Yd7M zJ2!6b=pON${^e|1FjRyh(l3G!k1U8q|7xUPNj#_dOt#G3``Z}O{`A>s5=l zWr6d2_UlbYqo=Uq>4Sq@C${g47EMn7xH#x%g(pt>mEfQ4&xt>u={;ZiOZ6Ui^` zj=}B|gPh0qM4o(M^g~Z)%<@*b6pcjxI2rxlicNppKsoWA5b=}hj-5PnAdVu>s=yuQ>hgj%e!frAwD@fAkPd z#&wl`(Xt{M{VijtSKC$kjYvO$f8pWZ$LJM4`p0&fsXQ~l(*^n!A}B8Ucg9aY)m$t* zi#8m-992*Fps91vijyM!r@toj6aMF}x#zfiMmzj~rYirzqy2Fjy65oU-@WqF-*fu+ z${F+UWBIS!A)8RsIsIKJ|1s$wpIH5^eLjZ3eE!{|S=6*akN|&*%N%2oSFZ-+gjWeDupzxMb-M zo?jmrM3zg>{5gieeDK9~rV)Xd0yU$n^v9z=C_684(eHW+=&5jM9Hsb>SDr8vluMK*#F(`ZoFaiQI-t9F)Ux#bMQl;-o*G z@t^CuGJX~1Aki8cxkA82%tgwNvEk5R%VX280zdZnVO3n?hmnq#-#c=ZvqL`qDH{kq z#?8!-cp8pg-WCu2;~nvie@eBWd-S&+IWwWAZHR0jS8~!ov^bVd(*es5#-u-dUNRQ_ zSc+nfpNAh8FJ4;waEmw=t#)LFC!-uqvJVe;9Ee4K`}nSmpT|Fc5q_+Hv6amQgwJAJ z9Zor$OLDZvroW5x7vlU^*XaLXN5?34n^|V@uADaFlSlGdFr3J9v_z->W1K(gk@-9M zajf&R8TaiMXYme8vv>-poQ32jk&gW_>F>t;-F0!ypGwE&FTN;$bgyg*ReKgyH4Ds) zIY(A~_4GggXVnyTTa=k=i*gqJ+N$QSmj0%e&OG-%l?eg4wvlqPfojDvmTM)8j;ei$ z)6eW|Rqp26t?z6;sO8$;7Tr4^9-6;;mzD`f$dDtXW};j`sRHK`Lc?NG4?AR%CLsu@Kra zgQaLD)0(bec@tC_L3#Y-#dsgr$VJGITW!S`=0Y*$R)}4C_4l9OBZM8$*9$z+W&25a zy$H`sB+JQe8&86BKDzVs&$X?=AqyK`+8cjC(&R`aD^|JXYB$IRm+xo{KC|n>#m_Z~ zmyVY9lN(;#vuM>n^D91%YIWaBuBdtoh{sjG+O>V}vFMavIePz4x7NI7+{o96;`#+V z(!}3Q>^J4g@7MFUnf<1Tzak$+zN-0+>qP4Cj!w2tgeP|8xN=-Mt{h+gWB;KO&-}5u z?1xP^`nP>emQ8)l-Bfqe+}iDTHhlW%%X@e1>xd0;grmLV^aD@rv@Y+C=AT42LGAX& za(fcg#*^qKR_$Ez)23Z5>ZP?YkGD3r7ke7NYQQz%jlPI)d@QDXB{`bv-ud!h4#W@s zlN?-ndArlU}7LvGk z+1U8pIPN0xLdl3K6(f2Ue~|6FTeU|EpZxv4-a}qp;57h`g|mF~mX!T&oA|NOYIJ=}d1x0`$a z_Hg9GVV5D?))mK}ipmIl`?%_TufE$FKiQhO23Pkhjm?O94uAWPx^F_yjs?NSNXUyN zJcMVYjgO)@H9I13;nDxECBcla;iO zQ9?@yzvTF9Zq28Hox`iW@FaqhaYTa=H?7*M`7ww@j^4$8Z{qlWGq^Jxc@^y8z?#*o zmefw07cxeSb?uLTi@f-cUc;aDL6U+0E{i7eT?9OSb`T>D{pRiN>~$9Nc;eOOI0q;a z!C$h0FaJ@DCHygu`N3UEUVH_?ZBOFgONBP)FA_v1ip007X@eeIPaO^8f z4*nWtJ`8qkkRvPtRXcf7g|+)TPM%8&+Tq8~UTuzZ%}WCKv*De6Ny2}36yzhI-NBtp z%Sm^&IC71%?Qh#-?17WW@w3<125zy3NxO%?yzu8H3;$TihcFjG4qLl@Oudv_%?_T_ zPhN?!nMr~N;_rxS!CH6m-#Z~Ru-TkA{ugLXO}SvkG(rf4Ssg_?IRF|A@$kU{|23+;!o&(y4Z12)SJUf&GV*HqH>~knoQw zg}RErO7gHF{lxLVxqeR=_!`J-q8(ue4-JkCa~^s9?=kj@Ov*v{H!Eifl7+v#@bmeU z(jUdx;V0(7@K+W4Fyu7>KM~of*>V4KJuCL51Mp|_H8HC|m+;pt{No(^6UTpE{ob%* zuSPx`^U%iEZlw$Dh8^O?toqjIThu1;_}OdwrTMbxRiKObE1F$tCNWv~tBQRX@-oah z)Sa;$XU7QqDCeo9U>nat_$yctsS3o8f26_>_}h|!e^l^A*K`H^O;-N>4w-TstG;>S;4Ymwm} ztqLT9|CprW9~pd&GOvlbm{DlAR1oJzme!udIR58F;!QNl-DV!Kv z+{ZjxkDPh-?XG=2O?3eN+>|$53sP2r`0{U774z7-uXC8^sEGfe(`Tc7UMl7R`16l3i6W@m z_{VH~lZ1auSm6(8J96-)GB1LEVbLQoJ|!0OID78m%;2Gc{EICodjkJRO>o@!v*o%P zjc?NN*DCz1!DS_10{=ok?}btKpE!IXA*|r=Jl#g0%i;K6v*OU1vk95TN%*Up;M`CX z96$asl%G+{4<-wLRpHNxQ206cD=uVuKl}aWE`RA*b^PJOqbB-1nfS$`lcW7@=gucI zWe^Gfa1|&D{u3hLuWEd+O&b18_(UxHD)7P8ypX8ahpz7E+7A5I7607TDa7A*;KId( zRs^W<*HD4@TtIaEV=A8ql7;_l5q}Ng6QS_m@X*l&#~Chuerf&>4zUlViJu$8Dv&(< z55!bKzvlRh!snb(3I0Ie$vuY>HDg=za(j;Wp*ki02ftSMtCfFI`AIJRGR-rV@bRAe z^`?aSr*QmtMTjEBH%CeDdeq4}O0n!58glJvB7YiEQ=!i{jst?Qc~47svW! zdCcSNxr@bX@cYQUgMZJozfAv3KK^0)rvm?R_Z>Tu@Hm72xpt)6y78F$DV@uI*-3Gh;CYc`259$#u+YMx^(jo4}BIov z=@9sc|Jf+Qr|0qS+Wbpz%|Et;&p+CKnds&i$4{Nld+?YN{1}CQkh^nC^6*c5{xKdE zH1YZO>+4kW@297(K6L7ALLhwc#TWLc+M|N6QTUUEe>}?P*T?>0%1VX($uMunC;Ji| zXZY=3j~YE^!@?4Bj(Exw2`^4B4$-zHa z_J=)fe+z*-{!A8bhI~DJ-|Ia_a zG{)Nk1#g(A!5qwUz)(X|~>kdF!eRj%XXl81kE;ot4`FUehhbo}Jms~iWXKX@R){TVJ@ zzWklX+U1ywF0@`uT1OTE{1Zcxgny*M-_`Xmy|DgkXUmCU)omX%CMtRU0B1m$zvGYX z>V;r(=oem9RA^jzl-?y;QmY9J1$)O{9E5|lkWwj0$d5ZLfS_Hf0*;=_!avS$3N-&FGZ;W ziSIwwy`%m=4@TMuOT7!3a#KDP@^bL6?iu_w3xC(~@2UOwx^evJ z_`8L_=Kia_ivQ)ym;cv)v_{%_HS#X3+Q<(J+aUeAWZ>UJ`>$$NfyDQ}?ON{s*cM^i zVeM^iRl5*JL7sgY;JOuilZbzm!rxu|)m5N3@&D((&JphRsCz+2+=W{cc@_BJ^1MmG zKX&2o9{!;!Aa22(`2Oc{9%s*8m>q15dn5E{ThNCg&%qy24fyX#9RElg?j;3(l@#hV z{C&S_iT&k;2w!1{@-2+vp)bPV2RM?2e@yTb!#|ndABpGqKkpsBy83XG&yGl6yNL23 zl1N|Vkv@uaO?CT3@9rev-^1S@kx8K>e19kA(R$?c#K3{Be|$FkG^$U6_qJ_?2( zU`hi1{QEnxKY{c$`TkV&{h(<-<}}D_vJULDjAT--7t>N)Z3v`Tmq7g?bwQ zb^qBqJb@2^sh-vP7M|jBg!#$AKQ?-a2T|%B* zYr+3`{O|qs-fL-PW!OjI4~|qL8P1V#v_;I-u&a@0=9K@#@qg>X_OaD15-ci4gs~%> zFUs(+XTx9*Ay2MlvZwKXEdB?NoG$Y35m$D!%2B#D0x#lr2cp7`$TOqC$?ktK{AUNY z-}{T5nyyxIzuX1x9+|885yp{-PV=cS*jvYl$dl1p%XQ0l z1%AQFlM~FcAmu1hmccCxe%hP(M@wHeOegzfr!;pgw<8h_8pY3=j1FUj$O~2{2zgEeGhJYgO=C$P(-cQFuxS+|1NcAGBQ#>9HyB6|2TkIuQ=-i=+|BWlQB=<$JxS*;F zYDOq{5yp{dPWhB7O*!mZWxfZIXKwz=?V9*k{h}D4s;0dMj%(r%$Lgnd^)vx8F6>coL7Nf# zazp6Fw299N=EEa!lhzITyBCE=3fEqEMJv7A9=Ys9`M=m=Z_B0=tV&kix+Bk#OL;W zwU|q8inH<6ciZ9zpB+b!pRId(SANy@ua@|zOwn*(IfV*Wu_N$A)4sNoT?Jn{+K!(7 z?Vt8n{iN}xz$f_?ACE8lxwiZ=yx#ixi-+OpF==r-_PjnmkE60`N%5mkma{T}M z=<-bGCi&B8Uw)}bP50#&s^l*zuUDT}Uf`x@5%CV1pRD%tRF!PJEzEZGzx?D)&ahrfA$<8_t0CR8+m8(*2xsLzucS3vr zLi{Q2Pg(r2mAm)RSGo5dJTcgLbb$L*j^|AIFZhm;XV0By@h7`?jIZ38TfTKn)gCGS z0Ozr6&sl5T(UWH|+W*~l>`x!IvG`VZBOpfc_e$|iuHz=}$-i#z{F1(vHfhz7H$Obg z<9oE@fB)4(;J^IE7vFgtKj|2X&(bgZL{86=A2wgQgrD+x`p<{6J!c><|Mg)zi(f$T zA-}*%7QeZz^T_eD;MuU(7?bZpEyT_Mr1D9*xKCW`N%z$D4SVwcNeaHCnPr*&7+;#KH9q(>E zdh@-Xj4#{5Mox0cjVs#S9!Ufx;o*7%yKuA={ywc_mHx+fPppRs@V(=W%r@#FuvdFZJAH!d4x zuJo-KcjKkiSO2!}$kz+s@vMLP>e{)j-};ql$-L{##ecrqG3fTrYv%p!FZT_sxwd50 z!FTk1cmLwAPUkge&H52D+WLIZ_GlT^Vy)59r%kA`3 z-sSg|-L+@|cs!-c?^j$Vf9EEHke3#^lb2Qq=Wh#3g@1?hTww|L z<_ot9i{N@boaccbkGK1r_yW`EEA$cG8`+P31)-mCBTomf^eQS#=*`~-41AD|LvR8L z^945`;i3DZ>8WLK*9M_}xNj2z5YGcw?0BWm4^uIXr4a6eJ8q#;Bc&>eW0n320dv4W z*pjkarvt8e1Q-0-A$|bfB0#PdKv*TP+yU1Xc&i0c#E?q<4vXOB)ZiO@@U(^dEJ8j! zKNqOB2(=J9AXI@5X)7b2lc(&1-x|sdOAm8c4!|rf#W>N1)@<)@v0$g3fwOu$_x29be#{i z#{xBv`KN`Yhoyz(1WO*$Q2=+R2-nGSI2l5$5b}+#+~$> zjh9pl$P9cJ#&f`Lo<_duAB zD651x0Zyx!%OW0kAwBJ(yNLfhUY2J=DvM=#pF`nxqP2|5KpEtJ23%p<0mwCSa1#90 z(qBHLT0>NOtU6^24wQC5@?9c6^OS0Q6UwM(quk#H@d5`#yvkSR<1+Z59; zOOut=d?kGpx3Tau7nP9Ku=K^jknm2jO-I$Jm&AFXY=N zQ6^}FS%h53?RYBZOd?JsUja~Kk>z z-O6cj@Vto_xufQBhL8o%GFr;HjMCz(1-K%|Rv=8%!k$%gMEy*$V1Q?^1o}w|mjWFt zA$6_itkVBie1I;N2|wQ}_^JuHa(orX{{v7<0|XQR000O8^oV9n5dg!KQ$6~k z^z54%e1fs_uku$GzV`OX`1OB@_+4asfgBwNK^WUHtV51Y?BJdFocR8697oL=am}nE0+W5!M^$ zD1hnSyl{>z8O}uP&4fHGjx9qP!nqdCS8EzZg_k^O1;P_o6vKuAEeOl6d$qxR*^Ng-l{RbtNU5P&-2kZyadDqSMZSa;)V5-9R={|wRIj! z=}mlLJ-uAWSj@aY}VY4V*&871J^nTi7IXXnPo>;34%h7iu0V?5$pusIJ9oB zJ?9!w9mKdFJswYRXvu3WQ?9%l5m;V;kHW8s6Nk~r8p8?;uatyL`Z~P$MhcKOk(j=H z^69l=CQ>*#_ot7trUGDBH- zC7wL{Ww|7}ybfrlzk3^=i<(jG0vmO0_*CDttts zRg>^mQri9u|CFDlhBwrn{?ORe#&&p5WmZI<$)ab2MyY7Q0FhH4IPY67q^lTuv^W0GMUfA2!#~dKsH!RLcT7~>Vp!f zECm>T2K;cu;8I{x#QzK}zBe!E5wrJ{zT?+HMK>MbxAE@>AMWO`dUWJ|I|W$+U;W-< zoWmb#MuIPm#<~=-CLCN55SleU#Q$Fpmlw5Aez64OD(WorpYR30&K$>W+^>-9z)nzLHsE2U;8Yo%Tm54L1lZPrVfc{U?bMyfCj>P!i zmA3Tcqb*~yK2WOvNlWz_^UkV>@ycf<*Gu1iV1gm7dnE$U)(B=2P$*$hdT+w`Pc)LB zG-rOWQQ!XYD*i4ds1`%~_{qA{!`zLU43y(pV%XW@)DymY$e22`%yzbfeLGaGC!p;j z+ljO9nwoa+g>>KrpaECRMc|6S!B|avE5J|F$}5;BF)55NiQ!K}14%AG72j1%?W0p| zI=&ZEFYxHkv5n3*zwsKZ-||~EkYr??z8~|)*RS7N@ZkcCq@TazKYsaBEn?Ca@mYTH zjCRPB@`d(j{g3|RkAD1}dSbvoCDv7SMP-8grVh}x}H z)@Y{;i3e_`44IcN}~b6kO%I&*#M#{KUwK|G-CXw4Eo_CRjnWItCK{}-AUM;110 zANc|thEli|e#M~_W^64htXnU>#>W9^0#}4;V6uP@GtUWq@W1Nz{Gy)0m3Wg!%bB)5 zm|NM>!IQT~7NUJ+z+^0CE4|wS!m@NkEH}{ zaWDx(KYLMIfL1K-;%Df%MdB*)?Fgff@Hi3=(`j$}k*|r_0n8{3mTiHSeJ0W0{1Sbb z%|R)ul}lPSe;5^?=mZHc__5|yVo&Bp$jL8AwOTTMO}`&n`iB)8 zA@q-<1!yBFQp_Ks1hdXTZ~>X}C{0k#>LWFVWEa-ZM{ps0?_c!kLi{uFBC%=gymXe4 zdD1@51;2qzg(Y+mGG4j<1H@w)Lp4ra#VaZKH}DU598YEo^~IB7$Vjh&%&~r>xhoDj z;lnYg%f*L(g1_g*i!XEZO;!YpHan`KC=r?!csl6{0+@FrWQm|14yR4faG8NPfj1Mf zPM*Gf`xNQm>A&H>YORu_5GZTfggkgwJ@U%PiGo7_h*;R}$ofloi^pY$b;F~E=jlD* zyyAGI#!Dx#wts6cq%}t^Nj6p&l)3^%B?@K2{2c1X!0Y|J?uj3ykol)7R9w*b^(VD_ z80*+Cfxt0PnvGX;ZmS=DW%e+JXmR9!Qvq5$cX?rb`D=}DZxz)%j899#e_rL8t@>)k zum62;=6h#LF$Q*MD?fj_2EUO^U5<9zR%}NY6-kXvFniMD6B{%K%|p@^N!tz<%#O^O zHS~>qTOJc54P1(rlAUoMGwD zbN9c}Gq9a(fE|V|egdeSdUwJ-$&ySi^-)%1fst;_OQ%4sjwk)BRR~E_oG+i%k{zCv zw9T0O3W_+PvQw;|e=~O+ej8#0YJxIcoylQf4YkY$r$wz z-;o4X%0FSHz>aV7GNM@cs@&os;cmAg#Zg0 zKBI076EGwYT`uC$_7@VCE`lpB5Ves-^v!+v01&#S`N}>F$_9MPqr@yXmmvZ|5Z38@ z9pOPrWnkNKg)goEWTl|KSF~;QQ}~X!6HbCK28{Tklq#ctEUA*(xxvm2k{NjT6U@IV z&FGPER1d_}4KJU%N1UI7GTP8fu=R@ZBuE*iUj=FHa3V!?qoQO8Y|h##dzNE$0);e= z$I6^t^xm_tf>6eulbzs}7Ti^OG!FVp8Uh4nwm$JO(&7L=+#S+)i(IPwo%JVcu`*YF zNd_rdFf^QPy|rE)S`+-I5=u$ux8aF2UyWjq7rcTrLN|xS=ZFRoP!$vdxSr>Be4Xa& zZ%k7qrk>jv(?C;sihP105NjIxZrL?Ll|m_Pw_<{ME_jwOvT$j1LP!$Ur?4fBF_EF4 zR73^PYDCWeGzw=lQWOGI5B^V|KIO5Tf4Xswoi^zS$Cu}$&mYFtryox;y+rb{5M#=p zE>}JM^w*NyB)LW-t0dF%uuOZ0G)VRwpIxJBe$QVW1-4)c0G{ zd6x+#=p$uNAzMe}aqRn;7w38syge#=!$3}UiclN`p^O6{3T0-q^8p&!_Dlg?gl|`a zAsUZ@`!8)ZW{%T{r_c`-_)L1SnO(4g&RUC~7mOf2D#>b@F;$Tv7o2 zJN#ucY)JEqotR6384#VR*lNyDrJy=Z9$FdtCNS5=1hT+Q7g1G)0v2T)JUI=+Wr?%= z*ahXrS|7tJFVNYu9Bcg{@@wL#h|_oW)#yS$W4*QDza!;8@`T^jXP>DU?ghyG2rx7b z^-J&4;$X6kDy6{;pur=n7xurx=u)%_4br=Y5;_6hv&+{Tju^#`Vn zDT`Tc{Ge-jj7^A8HOydZ$8r%+ILHeU0=g-y;(OOo7=#HIRqOY&^QGrm699ddrDU(b zQZZoM+!!SWi9$?;!Kwj6e$01h5NWagQCk0Qxe0Mre$L!9l%=hT0fNv=>&M{3lP)~CnWPTrM$Vqr<`F{L-MYy?#wc$8m-N=Ks1YrWY_JE*bM#^FD=c0_QB zxwRqujy)$z%h&UCLn@eHHU@456|sg^l-$9GFXy%~ae!?N@{kHHVxEWnEN2Or6mL~X zDNSBVMNlb{tp-Q!CwzM@&FhUe5eFvpq?X1bsSoR@=qIxE-F}guv$@U!toR3O#ebw0 z*IaFXsl|l^d>skf)qxiJdme`VR!k~NRodHB8*;!!5?p2*_G|QIJCmt~>}u>KnV;G^ znE0Xd70XIu&#wwV5NyRs7|QJa8k68^s4tgFb#0%xKSrt77>9Pi|Cn*|?nF@C4Q6VR ze5XyOjrMo|l>#VEU~aiu;hEwZC3TJI!+F@&RRTIauiwaZqhwBr zIfiM_xbU)$Zd3xuI@&>_ARlg1$CY)}ssXxHT;B^Y`DYVswwJXbT&1)=dNTe^J&?X( zta)HMjbWZNi{h{{u*tqtU!@ue`wVOpWK!Zi`@G)vtgLTI^r;wd>e!~Vy%}soQM8WG*kNku8`R!?<+oKm%g*|A{D6Ra$D?G>CI+#~iL*Nd>$*^{%T^0knZk z-5g#}4~}Q8FkcgFEGWq~VP3l~8s1izos`U$iC7jTUZ(UmhQY5d+e3j>2S)OAgWC@5 zOY$f6aE2zPe*Vdk?)#eaOig|1T|p0grf!jE!89}vd__WH-&Pjq;nfw|E8K~a_4`td z*H5rKzX{b|nx4sjzuF-)cDArP9<`Z4&mFr|aLJ^TQd6N2a5cDJ99dkg*@nS=H4;l+ z_{0b>AwH*KebweHN?b}v{oSy!rGURT!x@2?0cvz5bP*#(QPYgo@<2|1lL8Jbo-y8(x)v#!Tb|K>u}|f>WDcgi**bz*(rx@DtS%nWi!j z-zAS9&+S$wR`P0g`HDzfIn%bU^kw7I#ylmTE;hLZyvX@JC8&rNGn-!*iKnrK=z!Yli2cSy4aNciW`vLrP@%XX3#-sAO|b zaX4lKawE&Wlez11GL4lcHF0LG6wf7QjAI2e-v|}u%fYiu&-@rp#-K8B9D(QUt^IVO zdNv)@e#keb8$?1CJtkE~5ax9?Iw<17S0W`pvqn&Yxq|*83`0O@2 zCr~u3d%$M5cL8!$R1H^!`zP1{2rvw$@FBAuaIHcfngvD_4?lRj!*KCI!RfG9onA-HJqqK}6Z?oeTm z0ufu^j{ctxj(eJjHTCIT82Z8v_EK&y9Umi3>=liS(VVos?^=+1YzBNv?+28BH|g&M+u8#Kv%*A@_yt--p;2 z&NJk`sIqW~jnPCy?(Ec#ZGVWJ(L|l@?9-~9k+7<_9R z)w??PfTgG}ZiL_FTteToee_8$f!vyzz0jbx=Aoq9835d=`M5N*tCWu+vs?_RlQGnk zn`g$ZN74O82^v#_0E=#EEdb6q)v!Ovl`Uo3Ki)7|fD$ep2jE;?!HK4HCAP~Y7&;4v z+OCpVBI}&yuz11^kVMmG*EAL`-qLvzgP<^l=HU=BYCvufclpv~PQN0@!YEPyp^3NJ z6OZllYTF2#2A)b|h;zw*Q!kQn;}pQ2@%>FMweYuZejf@EgyI9R+7;MAh%exsyM=~e*N&IEAskQ*d` zLlfT908RmgyBomSkQ?>^oIJYs0i65gg>-`QeE?@4z*#!TzyTaZlKTM8K7ex{h`nx* zfde=uX4<1Q%La3Cb~J#q0t>t4@7((U4(6WiV*G}3;`ZU2It1Nog!C!d@}Sz8*i8;@ zgM@CVlKXx}Zu0os-N4OejIfW}zj@mFq?t?b_pv`@t z^}0a@4%!%4Xphw*8_KcS(TL4*9PE^rbMNCdSW~x)@fxc2+sA9_5Ol8*(x+Ikje&*sSS_-l9Ge}D*DS}uPI)=^K3+quf_5=r!##}l5t~{R-EWliDcTCa z+L@qD9&&?3ZD_)K8n!8*aChT28*;-waFa*(K5}!v9FR^>z7O5(LpMtY88~#KNOB*$ z*~f0~1F_c)GH~q1#7uj%X4zma&W?s}R$yVb{GEFrz@d)FyBNUXR?YhWPA!V=H%j`H zZUtcNOaLbjxj_OrG~qoB;1p1}y8)aHxnUo`$)kH8z`0*uNGB-Y2XOWQoTY;d9KcZ| zxews%1334A*y{!vIDlhfrafA-Y%mvRM*}!3u&`VH&b<%d{K0YJ(DbUsv-CDliB|;1 zo@4P$Qp?!l=$7N#vj2OsE`$`Z;TA3hQy6HNsdu$x*+j1DB38U0)>V)9ewP{i^ARbs z$t`9;#ZsudmS2xU=zI(WA2|4vQq6W7<<*yj~`iUIN=4;^f(7 zb{eWQu{3&r#WNIKCD{OYSn(Y3a9#%B4W6+GfMxWaIz-brJmG6Y+n~zi;<*%<5^O%- z&230)=JejuB%Xs+DC0=jGgBd^@9_NZFo`UCKKE%MAbnoH#Yj_8C{o7yyl#Yh;Lr+l+ATa>pv zP2NfRbKjN@{BuyydV_?u8^#>6L0Y>}J{v(FQ|sk%#kAL;`EjDPPoH=xz<1^dunhen zjseSqGWuQ|4UGD2y2nTul~BpRl=7I!WV3k6gD0|`Ilb;c8Eg&J55+=gLNa?2*&%C# z{LMi)o@PS8Y0u2(6|}@fI9I$OHbn~k(*z&t4`WVDmx>=rSuN3hK(U=Sq?4B-^1?)> zxUC@D6oKzi0L{Dr{OoC}g)`^dz6m|_y(hx46G<_a9BLMGVI1}?qFQq^ouL+x?OY4z z>oP!?Gja4&Q(LbN(<}I zC7$U3?kHB(0MHaqZD-F`Ob%EP#R`|Bs2twJ|4R)PWuUXXWjmb=bll}U3g;q<7cI7i zs1L#zQH?=a#PnfC0yuhcJzy7Ihpu&P<7<|fPC+YGz|$g9YeFbvaTjyMwijBdGjGnm zjIvn~To9 z9tUd)sm<|pbR?UQ{N3&oh^o67{Q>i!G|quIzI~;g?sp+jvYlqg(Ql>{kk6R1tw7v@ zoRF~{IB8aD6$r~Ajc4ViDODB1kg$j+M?8{+A57f!t0=rZmY;+A^3Zp22ftJ$KunDBHM(IHz(lZ`CJ6btyNDQ%SGViA2lW0W7jQ*0aNEv z>ovwjt58zP;uK~xa#_dAL97KcZ-z<*kdXD-gyq4y(gs~P+HCP3(bMvXUd!O(2Bi^vG} zL$ca9WGBmTCl~4{*2c6{ZwSUZr_P9ts`=Or zDHsNbgp+{xb0gY$I)E?Cy?k<{_KLex-C;tEai(O!f}yg?+$rvdVE<{+g9%ywF2r0V0Tv+Wm0qEtm(tc%G} z|LeEkpY^Ov$~(?SlK3~N{vFz2so-L>zz~hb)&~FGalobm$d78qhEW?{o8b=06D;nD zzv_uNb}sgDS>Po!%OrgEh4s%Q1bNlDs;WSw|Conk`wm9kb;TYbxcIuRT4&*-BIVfu zh^R{1Ee9=9YVBBjV_xAV(wnM6RtRsBUK5=IJUOzyiUn2#_b#Q28{0WE2@(7>518H} zj%7%6&VQ<)K8YecG4#_E{Ej)sI=c$OXua<;uGN?M99qsaC_1Ut<#*0%EO9qsHYKz3 z>=q<55qZubGMV1v=x=}f8I|quv>?yxn4qhpQU~w~#70*vv%Y z;eJFx{p3gu&T_kJTd4xgkA=A#noNb2Hn*Hg8|~D9s%&%@C3hJD9ZT#A3?7tIS^*&D zJVVOc z8I&W8ZLn2t_OAIxB@b`FG`hNUJ;S6GfWvW2WqZ5FF4||vL8mvbp$d+E8Acz6ZH;HL z^SG|r1~c4`V?fg+iA_zlPnhto4%BR4)xj{?ZPp5 z8OR%1_4wcX0h+2&P(roKV^&`FMiP~l<^?yQYC*R`wvyz)=MUyD59hBA=ifeKt-Amb zb=SXqE$(&Ik$6Sjbayy;k zu%C%u@xQqYrvibPbwkjAesW}%=~cmKhAWD)Y`T{7v?+(qm>^^>{0?ZNM> z#aPikt7}x$3V$qr`$Ayq8n?!v`3N2zPMz2i2Kb`-5sj>~X|WXA!8A!vTKu&89d=~N zw_LFfR44jp*|X^1c~cMs2EAVDXi39(d$a^!#5RbZ?up5`nQO^ZHf+ImzP2O5KnU0GlltmtYZ)DOM175*&fg7AoR=|ZNcoc&U+)}wf*PNCcYE3# zkT&Z;z9qu^5V*TZmNJ>{$@0;XmF1(pIPouwlG3QU&kv9%?oiQ?mpSEb1jU_qo(0?SVkFOND4cG$WuU4-Zze6ZJbzU_2&w z5|ufM!b}8D#yM-n6_VU&^=#Ua5x^XeEL_YygcVGDq1{uoyknxwx}dSbESBvcIp8)v zd>)2-OV=Wvs9571UY7!TX{qp)K0#vel; z5)}cv(Fu{rA!u9-yLNkKQUq;dx=2qQ@@0mkvIB8N3cK;)Lt(33o;nn_x<7L09Hjg6 zhAQw@h>I`LW@0#uhLytk_1^F9O9jaH)_m#9MW?-&)(y9b7AT+=chg=GP!Fc&T$@Wy zFAdN_37GDbAl-he+^A`jy;er(R^t^myH|K!Lv#n5KdoZqMqQv*^2u(sgR*^U4jkhR zp1rk$B42moPEfEhsUi_Z#M`X`FYaM09iU2J9IE+K-Ojh0@VWsY==*_NKCK7f*1J7z z0iu=nhHvylyEf(G%zc>CYa?sCPRG}Ysp6nsfL)Q=G(*~$Afvn+qI<-TEUutg{3fPma!VyQcv7VErvKgx6Dz5*3|9hYt_OEiu+Gfet=mOLBW1ir8EMn1&OyHZZ+Z3bM$3L zl56NiCJxY_{BxfI>@(djqA{bc{b?kH)DX;{w@3SkAD1J;RF9vnhJip;^$N^Bm78D zJ{v9wRtJ=BPqUUklg<4_#VLn&I%`Q{;}ftvdDS1`n4Nu<$Ei6USwBz(#yY_)rQ=+X zxXVMdTFQFRhiSDteh`OhjW=CGbq)7jL!XVeo}=t8&k<|4ygyIu3$pt>n$2OTsuWih ztoEU&v*O5tgRAn06FU6Mr*F6B`LYUbU;IkqvSICOcM7*aD;Go{#p_k;hZ%r^&ZBS^ z#$vpfXPNy>IR9CsBV%7rji{+X^-qdn0xO_PJJVEjhsekyYtj;iuS{R^!v_MGUZvjRezyyFe{L8I5%mzSS zM%(z?;pPay_y$0Eu1J3p#@CAeN7g9`s<`+>4W?cyRF!{X*uE(HnOul9wLM?BhctZ6 zn6Flh`KrMs-y8YvO)&??;+M$Hq8?2U@x6+?g*ZS~^Mb+$Kjb7%t1>PlGWP;k+#Ooq za7oV{N-*nVcnjE&{@XUz`w`g5aIN?#I@*DCfHC1MEcW|IfCp?Gi{YpBlCQS1WCYrm zs0m4AVAf4|7~b2U4h6zy8z{g%w}-2)_OL?sjl-`Z@cv~?BY&|2_xWw)#W5E9>z9=Y z)uq5&q2AIp8>YVveaMi(blBv!O`^IPOzAJQn3_g#$sW{Z5DwBjep?-)+t_t!m#yxe zpmnvqc_ROEUt43+Z@-?F*9TaHA$~sU%221JKKTi)wT;#hh7ht99~*7_BUO`=|v( zd#b_2n2v;c^ls3QjTi&p(7 z*S4{TN~cM=^U+ZG;LXx$I6nS><>IODLXqyNdC&r$GBM0_iN zp>Zp=gV!T)y+SG+xux7Z37nX7WrpLl($0#7y7=Srq?g7DYJIqJ=A1Z)VM@5bs1Gy`4zy8F66aWO7u3>!tE2)CEZ;J^r^(A1&dF8RY>ZhDV=2jExf+ znhKkGXcQH7KKE*n_9UzDv{7{kFxD*RKjzdgVameaO?0@z&u4q4hRPw09;r>}UNU-v zV}?~IJ4^T0%qL9As|FMu(3{!fKjZ=0Z2e`>_n@o5W|&R<#mCTgf%qx){W!WZzM3h( zTQz9}3i(G1l``wYcxBnp1y3(oZjq^TcOvQ+Ou70q@G;*VYQwNC*ieI`RTA&H*=CQ^ zIm}F7Bz%n}V%{pMIw!1?av}8z#t4jUJ$Rj6n2K;!T-fMCs|gBSM6LA2(TSGCHbap^NX>=4Sn&IMeJsE8v$J{xdtUuec*SEqRrZ1{5DHz$W81Zgx)A zq~;|Oue!1|)3%?Cpn>h;VS6IN@8oF|&NN@Glp`iNglqBj!EA*k31G@Q7<@zM0GgOz zQn=lEU{a@G>)z&Cx|4PC`R88-u)CJ>#U^%_f-SX}$Vpm{4~ZpqWhk-B=62FjFu!M~ zzRkIZjt5}jlrLi9_{|z-Z01ys(HB$B6Brlh@Uh?E+y7dqwE-cJJd$DNCAY%9$8Pf^ z@c;sfaf-_!8Ltw*^gZaFOf^vrGqrH%46)35ME5gkgKScwtdIfmJ~fa}JBMVjEo)kJ z*WzY~eYdbe5bTlXa$a{1&4+k75;Zar0ePOTn4T7D+SIJZjr2a*!oT@1d!JW(fq9M}vH%k9nx%pGiZ*y^Sb@OT<_3uWTpVAPU zY~E0(;du~QITzZ9QQ%26m_Y%WL1Z^f_+T4X0LuHy zT%BWZra{}LW81dvNuJoYZQHhOXJXrSCZ5=~ZD%&`TipS9Kj%)!p4EVBw^E zyEf+{0p=E|o}sk=>LwZU_L9S3rGBkqdC1&7!I*v}X8_UJ^N5>R;c_$3@8L>XAN6(J zk--a!a8Z{X_S*xIrkeE-NLi`Anc)=4Z*F?h^`}5;)5oSv2m%X!jY&x}AN_OA_XQ$u ztq5zY(dfy2&KgC9M@TxAzGVY)F}JqFkGTu$Xj^XhQKKFfxJF5;-M%%o4-hS#fZ@5k zvIF<`LY{IqSmH?Zocm6b5*$J{>!D`zolGyLIn(FVxppYIu95=BQ)3o9s_+`Q0bC@I z^09>fhVJ#oV}NiC`XG`d=L3YR^kQB&g>JjmW*d&-94LBq#Qh&yoM_sz{_d(yk=WV6 zwPrWFEEsTeK7ZX}EIgayP2YRy55mD~J`T?{vDieYRrZf3>$j>e0h1%TUF;>MO3`a%?%JwG7IN zZQOXDNqoIYU+veJAFer6D;xu;+NL6n|3 zBRQcIhl1eqIIjBb9l|3MnRv(2eU~%JBM`giE*&e%z>f;} zTXwf7D1n3DVw1}FT+DKYdI4leyeBI-NT>%x3irrs94iXo$b8KO#Q_#Luo%A;v4s$a zy3H3eOrs>ON-FA9T)#_A!R6|CuN0(>qE7W9ns{(K-(cN! z>?TSQp$i_*(PJ3F=}?s=(EKP`R!}O45H@!P)b{upBUs6_)EX~S7jPeH>$4s`Q;Ne- z%EX`h3S3><8Tb+quBt_M%x&Bvk2Vof&7f-+U(41KzMk;VZfkO`@mm9tOueEl7LaY_ zh9PUua`*_WI<@C7Oe+CNycFeBIwQ6OD#rG-#~_BfMSirM5u{`(>3rTG#=r!#aeo@m zmlq=0zxGpsQ7}DX*IDo|+bQ;<0%{#AT+J22HgjTOzMp-&jcA}C}o>3N~le^!X zgB#s2F-<-;&kLWr(v4Tnd;F`c%}&?CJb6oc=!!<4?Mmq4FF4_aqnC5T{<5OE=GL>i zW=k}imw`l@Gf#mDbjh~LIL%sWNGi$xz{?_$CrcmkZ$O7}S4TI*P|HyoS#MVruJ!6E zS6>~K?P-+QuSyW!)d5!8pP;caynhxA@}~ciwuIuW0K>|W%S>Xpq}eU&t>b9wtRutC z1q+*M7J1xZ{V#4dZL4Yn-H0$_L�e^;b7cyritQTGaCbmCH6T+K`bl0o0g2fusa% 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ℜ-b67;1;L$DH4ZG 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νOzd3Kp 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�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

Z-i<;W0^Ju5eqYriL|D~yq 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

v4j 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/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

+ Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + internal class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + internal class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + internal class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + internal class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without wating) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + A value of true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + String Conversion Helpers + + + + + Converts input string value into + + Input value + Output value + Default value + Returns failure if the input value could not be parsed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + NLog internal logger. + + Writes to file, console or custom textwriter (see ) + + + Don't use as that can lead to recursive calls - stackoverflows + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Initializes static members of the InternalLogger class. + + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled. + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the number of items in the array. + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Base class for representing nodes in condition expression trees. + + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + Returns a string representation of this expression. + + String literal in single quotes. + + + + Evaluates the expression by calculating the value + of the layout in the specified evaluation context. + + Evaluation context. + The value of the layout. + + + + Condition level expression (represented by the level keyword). + + + + + Returns a string representation of the expression. + + The 'level' string. + + + + Evaluates to the current log level. + + Evaluation context. Ignored. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + Returns a string representation of the expression. + + The literal value. + + + + Evaluates the expression. + + Evaluation context. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + Returns a string representation of this expression. + + A logger string. + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + Returns a string representation of this expression. + + The 'message' string. + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters. + + The method parameters. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Marks the class as containing condition methods. + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparision, e.g. parse a string to int. + + + + + + + Promoto to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparision. + + + index, 0 to maxint. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properies are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + New event args + + + + + + The assembly that is trying to load. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwardscomp. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Legacy interface, no longer used by the NLog engine + + + + + Gets or sets the JSON serializer to use with or + + + + + Gets or sets the string serializer to use with + + + + + Perform mesage template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in NLog.Extended.dll using late-bound types, so that we don't need a reference to NLog.Extended.dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Format of the excpetion output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + Registers a single type definition. + + The item name. + The type of the item. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Creates an item instance. + + The name of the item. + Created item. + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during installation/uninstallations. + + Log event info object. + + + + Keeps logging configuration and provides simple API + to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Variables defined in xml or in API. name is case case insensitive. + + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete on NLog 4.1 and it may be removed in a future release. + + + + Gets the variables defined in the configuration. + + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Compare objects based on their name. + + This property is use to cache the comparer object. + + + + Defines methods to support the comparison of objects for equality based on their name. + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for alle loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Flushes any pending log messages on all appenders. + + The asynchronous continuation. + + + + Validates the configuration. + + + + + Copies all variables from provided dictionary into current configuration variables. + + Master variables dictionary + + + + Replace a simple variable with a value. The orginal value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the new configuration + + The new configuration. + + + + Gets the old configuration + + The old configuration. + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or see cref="EnableLoggingForLevels"/> to enable logging. + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Target to be written to when the rule matches. + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + + Gets or sets logger name pattern. + + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends but not anywhere else. + + + + + Gets the collection of log levels enabled by this rule. + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to de disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + >Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + A that represents the current . + + + + + Checks whether te particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Factory for locating methods. + + The type of the class marker attribute. + The type of the method marker attribute. + + + + Gets a collection of all registered items in the factory. + + + Sequence of key/value pairs where each key represents the name + of the item and value is the of + the item. + + + + + Scans the assembly for classes marked with + and methods marked with and adds them + to the factory. + + The types to scan. + The prefix to use for names. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a simple name to an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The name of the item. + + + + Gets the name of the item. + + The name of the item. + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The input URI. + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Prevents a default instance of the class from being created. + + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Last error occured during configuration read + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Gets the required attribute. + + Name of the attribute. + Attribute value. + Throws if the attribute is not specified. + + + + Gets the optional boolean attribute value. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional boolean attribute value. If whitespace, then returning null. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional attribute value. + + Name of the attribute. + The default value. + Value of the attribute or default value. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Returns all parsing errors from current and all child elements. + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + Stack trace should not be captured. + + + + + Stack trace should be captured without source-level information. + + + + + Stack trace should be captured including source-level information such as line numbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Prefix for assets in Xamarin Android + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + If set to true errors will be ignored during file processing. + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Remove all spaces, also in between text. + + text + text without spaces + Tabs and other whitespace is not removed! + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Checks whether any error during XML configuration parsing has occured. + If there are any and ThrowConfigExceptions or ThrowExceptions + setting is enabled - throws NLogConfigurationException, otherwise + just write an internal log at Warn level. + + Root NLog configuration xml element + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + Rules are added to this parameter. + + + + Split list on comma, trim items + + + no empty items + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language + described
here. + + + + + Gets or sets the condition expression. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Can be used if has been enabled. + + + + + Constructor + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Global Diagnostics Context - used for log4net compatibility. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Include context properties + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Extensions for NLog . + + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Provides untyped IDictionary interface on top of generic IDictionary. + + The type of the key. + The type of the value. + + + + Initializes a new instance of the DictionaryAdapter class. + + The implementation. + + + + Gets an object containing the values in the object. + + + + An object containing the values in the object. + + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + + Gets an object containing the keys of the object. + + + + An object containing the keys of the object. + + + + + Gets or sets the with the specified key. + + Dictionary key. + Value corresponding to key or null if not found + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + + Removes all elements from the object. + + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + True if the contains an element with the key; otherwise, false. + + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Wrapper IDictionaryEnumerator. + + + + + Initializes a new instance of the class. + + The wrapped. + + + + Gets both the key and the value of the current dictionary entry. + + + + A containing both the key and the value of the current dictionary entry. + + + + + Gets the key of the current dictionary entry. + + + + The key of the current element of the enumeration. + + + + + Gets the value of the current dictionary entry. + + + + The value of the current element of the enumeration. + + + + + Gets the current element in the collection. + + + + The current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + + True if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Object construction helper. + + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Interface for fakeable the current . Not fully implemented, please methods/properties as necessary. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appeander is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Closes this instance of the appender. + + + + + Flushes this current appender. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Factory class which creates objects. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialisation as it is an + intenal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + Thrown when is called on an Empty instance. + + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialised before the supplied time. + + The time which prior the appenders considered expired + + + + Fluch all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Should archive mutex be created? + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + An immutable object that stores basic file info. + + + + + Constructs a FileCharacteristics object. + + The time the file was created in UTC. + The time the file was last written to in UTC. + The size of the file in bytes. + + + + The time the file was created in UTC. + + + + + The time the file was last written to in UTC. + + + + + The size of the file in bytes. + + + + + Optimized routines to get the basic file characteristics of the specified file. + + + + + Initializes static members of the FileCharacteristicsHelper class. + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid filenames char array to avoid memory allocation everytime Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Render the event info as parse as short + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as int + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as bool + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Logger configuration. + + + + + Initializes a new instance of the class. + + The targets by level. + Use the old exception log handling of NLog 3.0? + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete before NLog 4.3.11 and it will be removed in NLog 5. + + + + Gets targets for the specified level. + + The level. + Chain of targets with attached filters. + + + + Determines whether the specified level is enabled. + + The level. + + A value of true if the specified level is enabled; otherwise, false. + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes a continuation. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Performs sender-specific initialization. + + + + + Performs sender-specific close operation. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Parses the URI into an endpoint address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + Creates a new instance of the network sender based on a network URL:. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + /// + A newly created network sender. + + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Sends the specified text over the connected socket. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The address family. + Type of the socket. + Type of the protocol. + Implementation of to use. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Sends the specified text as a UDP datagram. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is a desktop version of Windows. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Portable implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Portable implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets current process ID. + + + + + + Gets current process name. + + + + + + Gets current process name (excluding filename extension, if any). + + + + + + Gets the name of the process. + + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Is this a property of the message? + + + + + + + Value of the property + Is this a property of the message? + + + + The properties of the logEvent + + + + + The properties extracted from the message + + + + + Injects the list of message-template-parameter into the IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The initially empty dictionary + Message-template-parameters was inserted into dictionary without trouble (true/false) + + + + Attempt to override the existing dictionary values using the message-template-parameters + + Message-template-parameters + The already filled dictionary + List of unique message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Is the property of array-type? + + Type which has the property + name of the property. + + + + + Get propertyinfo + + object which could have property + propertyname on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: http://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + Empty handle when is disabled + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Any operating system. + + + + + Unix/Linux operating systems. + + + + + Windows CE. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Unknown operating system. + + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid asssembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + formatstring. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Apend a int type (byte, int) as string + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Split a string + + + + + Split string with escape. The escape char is the same as the splitchar + + + split char. escaped also with this char + + + + + Split string with escape + + + + + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + cached result as calculating is expensive. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Returns details about current process and thread in a portable manner. + + + + + Initializes static members of the ThreadIDHelper class. + + + + + Gets the singleton instance of PortableThreadIDHelper or + Win32ThreadIDHelper depending on runtime environment. + + The instance. + + + + Gets current process ID. + + + + + Gets current process name. + + + + + Gets current process name (excluding filename extension, if any). + + + + + Helper for dealing with thread-local storage. + + + + + Allocates the data slot for storing thread-local information. + + Allocated slot key. + + + + Gets the data for a slot in thread-local storage. + + Type of the data. + The slot to get data for. + Automatically create the object if it doesn't exist. + + Slot data (will create T if null). + + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Renders all log event's properties and appends them to the specified . + + The to append the rendered data to. + Logging event. + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the , the second the second the + This string is used in + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Render the layout + + + + + + + Convert the formatting string + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + Initializes a new instance of the class. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + - Silverlight: Value for is always returned. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders an assembly version and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Gets the assembly specified by , or entry assembly otherwise + + Found assembly + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets additional version information. + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with with the base directory. + + + + + + Renders the application base directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source file name. Full callsite + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site (class name, method name and source information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A counter value (increases on each layout rendering). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + Renders the specified counter value and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + Renders the current directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current date and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + Renders the specified environment variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the name of the item. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. See . + + + + + Log event context data with default options. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + Renders the specified exception information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + Renders the contents of the specified file and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Create a new. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the garbage collector. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Global Diagnostics Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified Global Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Globally-unique identifier (GUID). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + Renders a newly generated GUID string and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Thread identity information (name and authentication information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + Renders the specified identity information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + Renders the specified installation parameter and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a , needed for date and number formats + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent and the current configuration. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Marks class as a layout renderer and assigns a name to it. + + This attribute is not required when registering the layout in the API. + + + + Initializes a new instance of the class. + + Name of the layout renderer, without the `${ }` + + + + Format of the ${level} layout renderer output. + + + + + Render the full level name. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Renders the current log level and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes the layout renderer. + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the XML logging event and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Renders the logger name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the date in the long format (yyyy-MM-dd HH:mm:ss.ffff) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The machine name that the process is running on. + + + + + Initializes the layout renderer. + + + + + Renders the machine name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Logical Context item (based on CallContext). + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDLC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + Renders the log message including any positional parameters and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Nested Diagnostic Context item. Provided for compatibility with log4net. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + Renders the specified Nested Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Renderer (Async scope) + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Renders the specified Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + Renders the timing details of the Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A newline literal. + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The directory where NLog.dll is located. + + + + + Initializes static members of the NLogDirLayoutRenderer class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current process. + + + + + Renders the current process ID. + + The to append the rendered data to. + Logging event. + + + + The information about the running process. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Renders the current process name (optionally with a full path). + + The to append the rendered data to. + Logging event. + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders the current process running time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + + + + The sequence ID + + + + + Renders the current log sequence ID and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current short date string (yyyy-MM-dd) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current thread. + + + + + Renders the current thread identifier and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The name of the current thread. + + + + + Renders the current thread name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The Ticks value of current date and time. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders time in the 24-h format (HH:mm:ss.mmm) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + Renders the current trace activity ID. + + The to append the rendered data to. + Logging event. + + + + Render a NLog variable (xml or config) + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Initializes the layout renderer. + + + + + Try get the + + + + + + + Renders the specified variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Thread Windows identity information (username). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets a value indicating whether username should be included. + + + + + + Renders the current thread windows identity information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply JSON encoding. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + RegistryLayoutRenderer + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Initializes the layout renderer. + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See http://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Trims the whitespace from the result of another layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + Renders the inner message, processes it and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + + Output to be transform. + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply XML encoding. + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Padded and trimmed string. + + + + A layout containing one or more nested layouts. + + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + Initializes the layout. + + + + + Formats the log event relying on inner layouts. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event relying on inner layouts. + + The logging event. + for the result + + + + Closes the layout. + + + + + Generate description of Compound Layout + + Compound Layout String Description + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + If is set, then the header generation with columnnames will be disabled. + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + Initializes the layout. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event for write. + + The logging event. + for the result + + + + Get the headers with the column names. + + + + + + Render 1 columnvalue (text or header) to + + write-to + current col index + col text + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Generate description of CSV Layout + + CSV Layout String Description + + + + Specifies CSV quoting modes. + + + + + Quote all column. + + + + + Quote nothing. + + + + + Quote only whose values contain the quote symbol or + the separator. + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Formats the log event as a JSON document for writing. + + The logging event. + for the result + + + + Formats the log event as a JSON document for writing. + + The log event to be formatted. + A JSON string representation of the log event. + + + + Generate description of JSON Layout + + JSON Layout String Description + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doens't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders the event info in layout. + + The event info. + String representing log event. + + + + Optimized version of for internal Layouts. Works best + when override of is available. + + The event info. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + StringBuilder to help minimize allocations [optional]. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Marks class as a layout renderer and assigns a format string to it. + + + + + Initializes a new instance of the class. + + Layout name. + + + + Parses layout strings. + + + + + Add to + + + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result. + + + + A specialized layout that renders Log4j-compatible XML events. + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Represents a string with embedded placeholders that can render contextual information. + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Returns a that represents the current object. + + + A that represents the current object. + + + + + Initializes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + for the result + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets the logger short name. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Gets the dictionary of per-event context properties. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + The exception. + Instance of . + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Set the + + true = Always, false = Never, null = Auto Detect + + + + Specialized LogFactory that can return instances of custom logger types. + + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the name of the current class and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. After setting this property all + existing loggers will be re-configured, so there is no need to call + manually. + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets the logger with the name of the current class. + + The logger with type . + Type of the logger + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The type of the logger to create. The type must inherit from + The logger of type . + This is a slow-running method. Make sure you are not calling this method in a + loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. Use to pass the type of the needed Logger. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Returns if logging is currently enabled. + + A value of if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Currently this logfactory is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Gets the filter result. + + The filter chain. + The log event. + The result of the filter. + + + + Defines available log levels. + + + + + Trace log level. + + + + + Debug log level. + + + + + Info log level. + + + + + Warn log level. + + + + + Error log level. + + + + + Fatal log level. + + + + + Off log level. + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + + The object object. + + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Delegate used to set/get the culture in use. + + This delegate marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. + + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture to use. + + This property was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The logger class. The class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. Use to pass the type of the needed Logger. + + Name of the logger. + The logger class. The class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + An object that implements IDisposable whose Dispose() method reenables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Checks if logging is currently enabled. + + if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + Service contract for Log Receiver client. + + This class marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Internal configuration of Log Receiver Service contracts. + + + + + Wire format for NLog Event. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the client-generated identifier of the event. + + + + + Gets or sets the ordinal of the log level. + + + + + Gets or sets the logger ordinal (index into . + + The logger ordinal. + + + + Gets or sets the time delta (in ticks) between the time of the event and base time. + + + + + Gets or sets the message string index. + + + + + Gets or sets the collection of layout values. + + + + + Gets the collection of indexes into array for each layout value. + + + + + Converts the to . + + The object this is part of.. + The logger name prefix to prepend in front of the logger name. + Converted . + + + + Wire format for NLog event package. + + + + + Gets or sets the name of the client. + + The name of the client. + + + + Gets or sets the base time (UTC ticks) for all events in the package. + + The base time UTC. + + + + Gets or sets the collection of layout names which are shared among all events. + + The layout names. + + + + Gets or sets the collection of logger names. + + The logger names. + + + + Gets or sets the list of events. + + The events. + + + + Converts the events to sequence of objects suitable for routing through NLog. + + The logger name prefix to prepend in front of each logger name. + + Sequence of objects. + + + + + Converts the events to sequence of objects suitable for routing through NLog. + + + Sequence of objects. + + + + + List of strings annotated for more terse serialization. + + + + + Initializes a new instance of the class. + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + Mostly for compatibility with log4net. + + + + + + + + + + Gets the thread-local dictionary + + Must be true for any subsequent dictionary modification operation + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + + + + + + Simulate ImmutableDictionary behavior (which is not yet part of all .NET frameworks). + In future the real ImmutableDictionary could be used here to minimize memory usage and copying time. + + Must be true for any subsequent dictionary modification operation + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Mapped Diagnostics Context - used for log4net compatibility. + + This class marked as obsolete before NLog 2.0 and it may be removed in a future release. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified item exists in current thread MDC. + + + + Removes the specified item from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + + + + + + A mesage template + + + + The original template string. + This is the key passed to structured targets. + + + The list of literal parts, useful for string rendering. + It indicates the number of characters from the original string to print, + then there's a hole with how many chars to skip. + + "Hello {firstName} {lastName}!" + ------------------------------------- + â•‘P |S â•‘P|S â•‘P|Sâ•‘ + â•‘6 |11 â•‘1|10 â•‘1|0â•‘ + â•‘Hello |{firstName}â•‘ |{lastName}â•‘!â•‘ + + "{x} * 2 = {2x}" + -------------------- + â•‘P|S â•‘P |S â•‘ + â•‘0|3 â•‘7 |4 â•‘ + â•‘{x}â•‘ * 2 = |{2x}â•‘ + + The tricky part is escaped braces. They are represented by a skip = 0, + which is interpreted as "move one char forward, no hole". + + "Escaped }} is fun." + ---------------------- + â•‘P |Sâ•‘P |Sâ•‘ + â•‘9 |0â•‘8 |0â•‘ + â•‘Escaped }|}â•‘ is fun.|â•‘ + + + + This list of holes. It's used both to fill the string rendering + and to send values along the template to structured targets. + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Create a template, which is already parsed + + + + + + + + + Create a template, which is already parsed + + + + + + + + This is for testing only: recreates from the parsed data. + + + + This is for testing only: rebuilds the hole + + Add to this string builder + ref for performance + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Render templates + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + Do not fallback to StringBuilder.Format for positional templates. + The String Builder destination. + Parameters for the holes. + + + + Render a template to a string. + + The template. + The String Builder destination. + Culture. + Parameters for the holes. + Rendered template, never null. + + + + Convert Render or serialize a value, with optionnally backwardscompatible with + + + + Singleton + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serialising a scalar (string, int, NULL) or simple type (IFormattable) + + + + + + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + formatstring of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Nested Diagnostics Context - for log4net compatibility. + + This class marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top object off the NDC stack. The object is removed from the stack. + + The top object from the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all objects on the NDC stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + Mostly for compatibility with log4net. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Resets the stack to the original count during . + + + + + Initializes a new instance of the class. + + The stack. + The previous count. + + + + Reverts the stack to original item count. + + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwardscompatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the current scope, and returns its start time + + Scope Creation Time + + + + Peeks the first scope, and returns its start time + + Scope Creation Time + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + Override this to create the actual logging task + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Schedules the LogEventInfo for async writing + + The log event. + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation betweewn task-completion and timeout + + + + Creates new task to handle the writing of the input + + LogEvent to write + New Task created [true / false] + + + + Handles that scheduled task has completed (succesfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the Console.Out or + Console.Error depending on the value of the Error flag. + + The logging event. + + Note that the Error option is not supported on .NET Compact Framework. + + + + + Write to output + + text to be written. + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + Access this property will compile the Regex. + + + + Get regex options. + + Default option to start with. + + + + + Get Expression for a . + + + + + + Replace regex result + + + + + + + Represents a parameter to a Database target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the parameter. + The parameter layout. + + + + Gets or sets the database parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Gets or sets the database parameter size. + + + + + + Gets or sets the database parameter precision. + + + + + + Gets or sets the database parameter scale. + + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the attached debugger. + + The logging event. + + + + Mock target - useful for testing. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + Increases the number of messages. + + The logging event. + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialisation options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized succesfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ascii characters be encoded + JSON escaped string + + + + Get properties, cached for a type + + + + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The begging position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. When the number of archive files exceed the obsolete archives are deleted. + + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + + When the number of archive files exceed the obsolete archives are deleted. + + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. When the number of archive files + exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Determine if old archive files should be deleted. + + Maximum number of archive files that should be kept + when old archives should be deleted; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the + highest number. When the number of archive files exceed the obsolete + archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + Documentation on NLog Wiki + + + + Default clean up period of the initilized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + The maximum number of initialised files before clean up procedures are initiated, + to keep the number of initialised files to a minimum. Chose 25 to cater for monthly rolling of log-files. + + + + + This value disables file archiving based on the size. + + + + + Holds the initialised files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialised files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + Setting this property to True helps improve performance. + + + + + + Gets or sets the maximum number of log filenames that should be stored as existing. + + + The bigger this number is the longer it will take to write each log record. The smaller the number is + the higher the chance that the clean function will be run when no new files have been opened. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. If this number is negative the files are + not automatically closed after a period of inactivity. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. If this number is negative or zero + the files are not flushed by timer. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. + Choose: + + + Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. +

+ Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. +

+
+ +
+ + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Returns estimated size for memory stream, based on events count and first event size in bytes. + + Count of events + Bytes count of first event + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occuring day of the week to return a DateTime for. + The DateTime of the next occuring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + Filename to archive. If null, then nothing to archive. + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialise a file to be used by the instance. Based on the number of initialised + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Invokes the archiving and clean up of older archive file based on the values of and properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formating and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Interface for serialization of values, maybe even objects to JSON format. + Useful for wrappers for existing serializers. + + + + + Returns a serialization of an object + into JSON format. + + The object to serialize to JSON. + Serialized value (null = Serialize failed). + + + + Options for JSON serialisation + + + + + Add quotes arround object keys? + + + + + Formatprovider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + Initializes a new instance of the class. + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms + and data structures like a hash table. + + + + + Determines whether the specified is + equal to this instance. + + The to compare with + this instance. + + Value of true if the specified + is equal to this instance; otherwise, false. + + + The parameter is null. + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + + true if this converter can perform the conversion; otherwise, false. + + An that provides a format context. A that represents the type you want to convert from. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + + An that represents the converted value. + + An that provides a format context. The to use as the current culture. The to convert. The conversion cannot be performed. + + + + Sends log messages by email using SMTP protocol. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinit waiting + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Renders an array logging events. + + Array of logging events. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mailmessage + + event for rendering layouts + string to group on + + + + Append rendered layout to the stringbuilder + + append to this + event for rendering + append if not null + + + + Create the mailmessage with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to an ArrayList in memory for programmatic retrieval. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + Initializes the target. + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will be very slow. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6) (not supported on Windows Phone 7.0)
  • +
  • tcp4://host:port - force TCP/IPv4 (not supported on Windows Phone 7.0)
  • +
  • tcp6://host:port - force TCP/IPv6 (not supported on Windows Phone 7.0)
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6, not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp4://host:port - force UDP/IPv4 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp6://host:port - force UDP/IPv6 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). + + + + + + Gets or sets the maximum current connections. 0 = no maximum. + + + + + + Gets or sets the action that should be taken if the will be more connections than . + + + + + + Gets or sets the maximum queue size. + + + + + + Gets or sets the action that should be taken if the message is larger than + maxMessageSize. + + + + + + Gets or sets the encoding to be used. + + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + The action to be taken when there are more connections then the max. + + + + + Just allow it. + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. + + + + + Discard the entire message. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Sends log messages to the remote instance of NLog Viewer. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include stack contents. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Outputs log messages through the OutputDebugString() Win32 API. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Outputs the rendered logging event through the OutputDebugString() Win32 API. + + The logging event. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Can be used if has been enabled. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Closes the target and releases any unmanaged resources. + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + NOTE! Obsolete, instead override WriteAsyncThreadSafe(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target, in a thread safe manner. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the event info in layout. + + The layout. + The event info. + String representing log event. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Marks class as a logging target and assigns a name to it. + + This attribute is not required when registering the target in the API. + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + Represents target that supports context capture using MDLC, MDC, NDLC and NDC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of MDC context + + + Internal Layout that allows capture of NDC context + + + Internal Layout that allows capture of MDLC context + + + Internal Layout that allows capture of NDLC context + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the layout used to format log messages. + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the text to be rendered. + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Always use independent of + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + + + Write from input to output. Fix the UTF-8 bom + + + + + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued (-1 means everything). + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides asynchronous, buffered execution of target writes. + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queueing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the limit of full s to write before yielding into + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent statisfies the . + If condition isn't set, flushes on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes the target. + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The aciton to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target. + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Writes logging event to the log target. + + Logging event to be written out. + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + The method remembers the last-known-successful target + and starts the iteration from it. + If is set, the method + resets the target to the first target + stored in . + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + Limits the number of messages written per timespan to the wrapped target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the DateTime when the current will be reset. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Logon provider. + + + + + Use the standard logon provider for the system. + + + The default security provider is negotiate, unless you pass NULL for the domain name and the user name + is not in UPN format. In this case, the default provider is NTLM. + NOTE: Windows 2000/NT: The default security provider is NTLM. + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Sends log messages to a randomly selected target. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Impersonation level. + + + + + Anonymous Level. + + + + + Identification Level. + + + + + Impersonation Level. + + + + + Delegation Level. + + + + + Logon type. + + + + + Interactive Logon. + + + This logon type is intended for users who will be interactively using the computer, such as a user being logged on + by a terminal server, remote shell, or similar process. + This logon type has the additional expense of caching logon information for disconnected operations; + therefore, it is inappropriate for some client/server applications, + such as a mail server. + + + + + Network Logon. + + + This logon type is intended for high performance servers to authenticate plaintext passwords. + The LogonUser function does not cache credentials for this logon type. + + + + + Batch Logon. + + + This logon type is intended for batch servers, where processes may be executing on behalf of a user without + their direct intervention. This type is also for higher performance servers that process many plaintext + authentication attempts at a time, such as mail or Web servers. + The LogonUser function does not cache credentials for this logon type. + + + + + Logon as a Service. + + + Indicates a service-type logon. The account provided must have the service privilege enabled. + + + + + Network Clear Text Logon. + + + This logon type preserves the name and password in the authentication package, which allows the server to make + connections to other network servers while impersonating the client. A server can accept plaintext credentials + from a client, call LogonUser, verify that the user can access the system across the network, and still + communicate with other servers. + NOTE: Windows NT: This value is not supported. + + + + + New Network Credentials. + + + This logon type allows the caller to clone its current token and specify new credentials for outbound connections. + The new logon session has the same local identifier but uses different credentials for other network connections. + NOTE: This logon type is supported only by the LOGON32_PROVIDER_WINNT50 logon provider. + NOTE: Windows NT: This value is not supported. + + + + + Writes log events to all targets. + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the time source. + + + diff --git a/MTC_Adapter/packages/NLog.4.5.11/lib/net35/NLog.xml b/MTC_Adapter/packages/NLog.4.5.11/lib/net35/NLog.xml new file mode 100644 index 0000000..9d4a209 --- /dev/null +++ b/MTC_Adapter/packages/NLog.4.5.11/lib/net35/NLog.xml @@ -0,0 +1,26605 @@ + + + + NLog + + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + internal class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + internal class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + internal class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + internal class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without wating) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + A value of true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + String Conversion Helpers + + + + + Converts input string value into + + Input value + Output value + Default value + Returns failure if the input value could not be parsed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + NLog internal logger. + + Writes to file, console or custom textwriter (see ) + + + Don't use as that can lead to recursive calls - stackoverflows + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Initializes static members of the InternalLogger class. + + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled. + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Relese configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the number of items in the array. + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Base class for representing nodes in condition expression trees. + + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + Returns a string representation of this expression. + + String literal in single quotes. + + + + Evaluates the expression by calculating the value + of the layout in the specified evaluation context. + + Evaluation context. + The value of the layout. + + + + Condition level expression (represented by the level keyword). + + + + + Returns a string representation of the expression. + + The 'level' string. + + + + Evaluates to the current log level. + + Evaluation context. Ignored. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + Returns a string representation of the expression. + + The literal value. + + + + Evaluates the expression. + + Evaluation context. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + Returns a string representation of this expression. + + A logger string. + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + Returns a string representation of this expression. + + The 'message' string. + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters. + + The method parameters. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Marks the class as containing condition methods. + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparision, e.g. parse a string to int. + + + + + + + Promoto to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparision. + + + index, 0 to maxint. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properies are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + New event args + + + + + + The assembly that is trying to load. + + + + + NLog configuration section handler class for configuring NLog from App.config. + + + + + Creates a configuration section handler. + + Parent object. + Configuration context object. + Section XML node. + The created section handler object. + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwardscomp. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Legacy interface, no longer used by the NLog engine + + + + + Gets or sets the JSON serializer to use with or + + + + + Gets or sets the string serializer to use with + + + + + Perform mesage template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in NLog.Extended.dll using late-bound types, so that we don't need a reference to NLog.Extended.dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Format of the excpetion output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + Registers a single type definition. + + The item name. + The type of the item. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Creates an item instance. + + The name of the item. + Created item. + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during installation/uninstallations. + + Log event info object. + + + + Keeps logging configuration and provides simple API + to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Variables defined in xml or in API. name is case case insensitive. + + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete on NLog 4.1 and it may be removed in a future release. + + + + Gets the variables defined in the configuration. + + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Compare objects based on their name. + + This property is use to cache the comparer object. + + + + Defines methods to support the comparison of objects for equality based on their name. + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for alle loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Flushes any pending log messages on all appenders. + + The asynchronous continuation. + + + + Validates the configuration. + + + + + Copies all variables from provided dictionary into current configuration variables. + + Master variables dictionary + + + + Replace a simple variable with a value. The orginal value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the new configuration + + The new configuration. + + + + Gets the old configuration + + The old configuration. + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or see cref="EnableLoggingForLevels"/> to enable logging. + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Target to be written to when the rule matches. + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + + Gets or sets logger name pattern. + + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends but not anywhere else. + + + + + Gets the collection of log levels enabled by this rule. + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to de disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + >Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + A that represents the current . + + + + + Checks whether te particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Factory for locating methods. + + The type of the class marker attribute. + The type of the method marker attribute. + + + + Gets a collection of all registered items in the factory. + + + Sequence of key/value pairs where each key represents the name + of the item and value is the of + the item. + + + + + Scans the assembly for classes marked with + and methods marked with and adds them + to the factory. + + The types to scan. + The prefix to use for names. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a simple name to an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The name of the item. + + + + Gets the name of the item. + + The name of the item. + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The input URI. + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Prevents a default instance of the class from being created. + + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Last error occured during configuration read + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Gets the required attribute. + + Name of the attribute. + Attribute value. + Throws if the attribute is not specified. + + + + Gets the optional boolean attribute value. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional boolean attribute value. If whitespace, then returning null. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional attribute value. + + Name of the attribute. + The default value. + Value of the attribute or default value. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Returns all parsing errors from current and all child elements. + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + Stack trace should not be captured. + + + + + Stack trace should be captured without source-level information. + + + + + Stack trace should be captured including source-level information such as line numbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + If set to true errors will be ignored during file processing. + + + + Gets the default object by parsing + the application configuration file (app.exe.config). + + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Remove all spaces, also in between text. + + text + text without spaces + Tabs and other whitespace is not removed! + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Checks whether any error during XML configuration parsing has occured. + If there are any and ThrowConfigExceptions or ThrowExceptions + setting is enabled - throws NLogConfigurationException, otherwise + just write an internal log at Warn level. + + Root NLog configuration xml element + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + Rules are added to this parameter. + + + + Split list on comma, trim items + + + no empty items + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language + described here. + + + + + Gets or sets the condition expression. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Can be used if has been enabled. + + + + + Constructor + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Global Diagnostics Context - used for log4net compatibility. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Include context properties + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Extensions for NLog . + + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Internal configuration manager used to read .NET configuration files. + Just a wrapper around the BCL ConfigurationManager, but used to enable + unit testing. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Provides untyped IDictionary interface on top of generic IDictionary. + + The type of the key. + The type of the value. + + + + Initializes a new instance of the DictionaryAdapter class. + + The implementation. + + + + Gets an object containing the values in the object. + + + + An object containing the values in the object. + + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + + Gets an object containing the keys of the object. + + + + An object containing the keys of the object. + + + + + Gets or sets the with the specified key. + + Dictionary key. + Value corresponding to key or null if not found + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + + Removes all elements from the object. + + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + True if the contains an element with the key; otherwise, false. + + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Wrapper IDictionaryEnumerator. + + + + + Initializes a new instance of the class. + + The wrapped. + + + + Gets both the key and the value of the current dictionary entry. + + + + A containing both the key and the value of the current dictionary entry. + + + + + Gets the key of the current dictionary entry. + + + + The key of the current element of the enumeration. + + + + + Gets the value of the current dictionary entry. + + + + The value of the current element of the enumeration. + + + + + Gets the current element in the collection. + + + + The current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + + True if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Object construction helper. + + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Interface for fakeable the current . Not fully implemented, please methods/properties as necessary. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appeander is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Closes this instance of the appender. + + + + + Flushes this current appender. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Factory class which creates objects. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialisation as it is an + intenal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + Thrown when is called on an Empty instance. + + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialised before the supplied time. + + The time which prior the appenders considered expired + + + + Fluch all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multiprocess-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Closes this instance. + + + + + Flushes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Provides a multiprocess-safe atomic file append while + keeping the files open. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Creates or opens a file in a special mode, so that writes are automatically + as atomic writes at the file end. + See also "UnixMultiProcessFileAppender" which does a similar job on *nix platforms. + + File to create or open + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Closes this instance. + + + + + Flushes this instance. + + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + An immutable object that stores basic file info. + + + + + Constructs a FileCharacteristics object. + + The time the file was created in UTC. + The time the file was last written to in UTC. + The size of the file in bytes. + + + + The time the file was created in UTC. + + + + + The time the file was last written to in UTC. + + + + + The size of the file in bytes. + + + + + Optimized routines to get the basic file characteristics of the specified file. + + + + + Initializes static members of the FileCharacteristicsHelper class. + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid filenames char array to avoid memory allocation everytime Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Render the event info as parse as short + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as int + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as bool + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Logger configuration. + + + + + Initializes a new instance of the class. + + The targets by level. + Use the old exception log handling of NLog 3.0? + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete before NLog 4.3.11 and it will be removed in NLog 5. + + + + Gets targets for the specified level. + + The level. + Chain of targets with attached filters. + + + + Determines whether the specified level is enabled. + + The level. + + A value of true if the specified level is enabled; otherwise, false. + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Sends a QUIT message to the SMTP server, gracefully ends the TCP connection, and releases all resources used by the current instance of the class. + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes a continuation. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Performs sender-specific initialization. + + + + + Performs sender-specific close operation. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Parses the URI into an endpoint address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + Creates a new instance of the network sender based on a network URL:. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + /// + A newly created network sender. + + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Sends the specified text over the connected socket. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The address family. + Type of the socket. + Type of the protocol. + Implementation of to use. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Sends the specified text as a UDP datagram. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is a desktop version of Windows. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Portable implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Portable implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets current process ID. + + + + + + Gets current process name. + + + + + + Gets current process name (excluding filename extension, if any). + + + + + + Gets the name of the process. + + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Is this a property of the message? + + + + + + + Value of the property + Is this a property of the message? + + + + The properties of the logEvent + + + + + The properties extracted from the message + + + + + Injects the list of message-template-parameter into the IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The initially empty dictionary + Message-template-parameters was inserted into dictionary without trouble (true/false) + + + + Attempt to override the existing dictionary values using the message-template-parameters + + Message-template-parameters + The already filled dictionary + List of unique message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Is the property of array-type? + + Type which has the property + name of the property. + + + + + Get propertyinfo + + object which could have property + propertyname on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: http://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + Empty handle when is disabled + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Any operating system. + + + + + Unix/Linux operating systems. + + + + + Windows CE. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Unknown operating system. + + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid asssembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + formatstring. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Apend a int type (byte, int) as string + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Split a string + + + + + Split string with escape. The escape char is the same as the splitchar + + + split char. escaped also with this char + + + + + Split string with escape + + + + + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + cached result as calculating is expensive. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Returns details about current process and thread in a portable manner. + + + + + Initializes static members of the ThreadIDHelper class. + + + + + Gets the singleton instance of PortableThreadIDHelper or + Win32ThreadIDHelper depending on runtime environment. + + The instance. + + + + Gets current process ID. + + + + + Gets current process name. + + + + + Gets current process name (excluding filename extension, if any). + + + + + Helper for dealing with thread-local storage. + + + + + Allocates the data slot for storing thread-local information. + + Allocated slot key. + + + + Gets the data for a slot in thread-local storage. + + Type of the data. + The slot to get data for. + Automatically create the object if it doesn't exist. + + Slot data (will create T if null). + + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Win32-optimized implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Win32-optimized implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets current process ID. + + + + + + Gets current process name. + + + + + + Gets current process name (excluding filename extension, if any). + + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Renders all log event's properties and appends them to the specified . + + The to append the rendered data to. + Logging event. + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the , the second the second the + This string is used in + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Render the layout + + + + + + + Convert the formatting string + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + Initializes a new instance of the class. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + - Silverlight: Value for is always returned. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders an assembly version and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Gets the assembly specified by , or entry assembly otherwise + + Found assembly + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets additional version information. + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with with the base directory. + + + + + + Renders the application base directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source file name. Full callsite + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site (class name, method name and source information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A counter value (increases on each layout rendering). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + Renders the specified counter value and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + Renders the current directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current date and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + Renders the specified environment variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the name of the item. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. See . + + + + + Log event context data with default options. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + Renders the specified exception information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + Renders the contents of the specified file and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Create a new. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the garbage collector. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Global Diagnostics Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified Global Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Globally-unique identifier (GUID). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + Renders a newly generated GUID string and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Thread identity information (name and authentication information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + Renders the specified identity information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + Renders the specified installation parameter and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a , needed for date and number formats + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent and the current configuration. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Marks class as a layout renderer and assigns a name to it. + + This attribute is not required when registering the layout in the API. + + + + Initializes a new instance of the class. + + Name of the layout renderer, without the `${ }` + + + + Format of the ${level} layout renderer output. + + + + + Render the full level name. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Renders the current log level and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes the layout renderer. + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the XML logging event and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Renders the logger name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the date in the long format (yyyy-MM-dd HH:mm:ss.ffff) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The machine name that the process is running on. + + + + + Initializes the layout renderer. + + + + + Renders the machine name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Logical Context item (based on CallContext). + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDLC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + Renders the log message including any positional parameters and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Nested Diagnostic Context item. Provided for compatibility with log4net. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + Renders the specified Nested Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Renderer (Async scope) + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Renders the specified Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + Renders the timing details of the Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A newline literal. + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The directory where NLog.dll is located. + + + + + Initializes static members of the NLogDirLayoutRenderer class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The performance counter. + + + + + Gets or sets the name of the counter category. + + + + + + Gets or sets the name of the performance counter. + + + + + + Gets or sets the name of the performance counter instance (e.g. this.Global_). + + + + + + Gets or sets the name of the machine to read the performance counter from. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the specified environment variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current process. + + + + + Renders the current process ID. + + The to append the rendered data to. + Logging event. + + + + The information about the running process. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Renders the current process name (optionally with a full path). + + The to append the rendered data to. + Logging event. + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders the current process running time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + + + + High precision timer, based on the value returned from QueryPerformanceCounter() optionally converted to seconds. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to normalize the result by subtracting + it from the result of the first call (so that it's effectively zero-based). + + + + + + Gets or sets a value indicating whether to output the difference between the result + of QueryPerformanceCounter and the previous one. + + + + + + Gets or sets a value indicating whether to convert the result to seconds by dividing + by the result of QueryPerformanceFrequency(). + + + + + + Gets or sets the number of decimal digits to be included in output. + + + + + + Gets or sets a value indicating whether to align decimal point (emit non-significant zeros). + + + + + + Initializes the layout renderer. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A value from the Registry. + + + + + Create new renderer + + + + + Gets or sets the registry value name. + + + + + + Gets or sets the value to be output when the specified registry key or value is not found. + + + + + + Require escaping backward slashes in . Need to be backwardscompatible. + + When true: + + `\` in value should be configured as `\\` + `\\` in value should be configured as `\\\\`. + + Default value wasn't a Layout before and needed an escape of the slash + + + + + Gets or sets the registry key. + + + HKCU\Software\NLogTest + + + Possible keys: +
    +
  • HKEY_LOCAL_MACHINE
  • +
  • HKLM
  • +
  • HKEY_CURRENT_USER
  • +
  • HKCU
  • +
  • HKEY_CLASSES_ROOT
  • +
  • HKEY_USERS
  • +
  • HKEY_CURRENT_CONFIG
  • +
  • HKEY_DYN_DATA
  • +
  • HKEY_PERFORMANCE_DATA
  • +
+
+ +
+ + + Reads the specified registry key and value and appends it to + the passed . + + The to append the rendered data to. + Logging event. Ignored. + + + + Has ? + + + + + Parse key to and subkey. + + full registry key name + Result of parsing, never null. + + + + Aliases for the hives. See https://msdn.microsoft.com/en-us/library/ctb3kd86(v=vs.110).aspx + + + + + The sequence ID + + + + + Renders the current log sequence ID and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current short date string (yyyy-MM-dd) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current thread. + + + + + Renders the current thread identifier and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The name of the current thread. + + + + + Renders the current thread name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The Ticks value of current date and time. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders time in the 24-h format (HH:mm:ss.mmm) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + Renders the current trace activity ID. + + The to append the rendered data to. + Logging event. + + + + Render a NLog variable (xml or config) + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Initializes the layout renderer. + + + + + Try get the + + + + + + + Renders the specified variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Thread Windows identity information (username). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets a value indicating whether username should be included. + + + + + + Renders the current thread windows identity information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply JSON encoding. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + RegistryLayoutRenderer + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Initializes the layout renderer. + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See http://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Trims the whitespace from the result of another layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + Renders the inner message, processes it and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + + Output to be transform. + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply XML encoding. + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Padded and trimmed string. + + + + A layout containing one or more nested layouts. + + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + Initializes the layout. + + + + + Formats the log event relying on inner layouts. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event relying on inner layouts. + + The logging event. + for the result + + + + Closes the layout. + + + + + Generate description of Compound Layout + + Compound Layout String Description + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + If is set, then the header generation with columnnames will be disabled. + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + Initializes the layout. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event for write. + + The logging event. + for the result + + + + Get the headers with the column names. + + + + + + Render 1 columnvalue (text or header) to + + write-to + current col index + col text + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Generate description of CSV Layout + + CSV Layout String Description + + + + Specifies CSV quoting modes. + + + + + Quote all column. + + + + + Quote nothing. + + + + + Quote only whose values contain the quote symbol or + the separator. + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Formats the log event as a JSON document for writing. + + The logging event. + for the result + + + + Formats the log event as a JSON document for writing. + + The log event to be formatted. + A JSON string representation of the log event. + + + + Generate description of JSON Layout + + JSON Layout String Description + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doens't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders the event info in layout. + + The event info. + String representing log event. + + + + Optimized version of for internal Layouts. Works best + when override of is available. + + The event info. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + StringBuilder to help minimize allocations [optional]. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Marks class as a layout renderer and assigns a format string to it. + + + + + Initializes a new instance of the class. + + Layout name. + + + + Parses layout strings. + + + + + Add to + + + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result. + + + + A specialized layout that renders Log4j-compatible XML events. + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Represents a string with embedded placeholders that can render contextual information. + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Returns a that represents the current object. + + + A that represents the current object. + + + + + Initializes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + for the result + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets the logger short name. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Gets the dictionary of per-event context properties. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + The exception. + Instance of . + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Set the + + true = Always, false = Never, null = Auto Detect + + + + Specialized LogFactory that can return instances of custom logger types. + + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the name of the current class and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. After setting this property all + existing loggers will be re-configured, so there is no need to call + manually. + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets the logger with the name of the current class. + + The logger with type . + Type of the logger + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The type of the logger to create. The type must inherit from + The logger of type . + This is a slow-running method. Make sure you are not calling this method in a + loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. Use to pass the type of the needed Logger. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Returns if logging is currently enabled. + + A value of if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this logfactory is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Gets the filter result. + + The filter chain. + The log event. + The result of the filter. + + + + Defines available log levels. + + + + + Trace log level. + + + + + Debug log level. + + + + + Info log level. + + + + + Warn log level. + + + + + Error log level. + + + + + Fatal log level. + + + + + Off log level. + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + + The object object. + + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Delegate used to set/get the culture in use. + + This delegate marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. + + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture to use. + + This property was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The logger class. The class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. Use to pass the type of the needed Logger. + + Name of the logger. + The logger class. The class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + An object that implements IDisposable whose Dispose() method reenables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Checks if logging is currently enabled. + + if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + Base implementation of a log receiver server which forwards received logs through or a given . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log factory. + + + + Processes the log messages. + + The events to process. + + + + Processes the log messages. + + The log events. + + + + Service contract for Log Receiver client. + + This class marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver server. + + + + + Processes the log messages. + + The events. + + + + Service contract for Log Receiver server. + + + + + Processes the log messages. + + The events. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Client of + + + + + Occurs when the log message processing has completed. + + + + + Occurs when Open operation has completed. + + + + + Occurs when Close operation has completed. + + + + + Enables the user to configure client and service credentials as well as service credential authentication settings for use on the client side of communication. + + + + + Gets the underlying implementation. + + + + + Gets the target endpoint for the service to which the WCF client can connect. + + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Closes the client asynchronously. + + User-specific state. + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Instructs the inner channel to display a user interface if one is required to initialize the channel prior to using it. + + + + + Implementation of which forwards received logs through or a given . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log factory. + + + + Implementation of which forwards received logs through or a given . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log factory. + + + + Internal configuration of Log Receiver Service contracts. + + + + + Wire format for NLog Event. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the client-generated identifier of the event. + + + + + Gets or sets the ordinal of the log level. + + + + + Gets or sets the logger ordinal (index into . + + The logger ordinal. + + + + Gets or sets the time delta (in ticks) between the time of the event and base time. + + + + + Gets or sets the message string index. + + + + + Gets or sets the collection of layout values. + + + + + Gets the collection of indexes into array for each layout value. + + + + + Converts the to . + + The object this is part of.. + The logger name prefix to prepend in front of the logger name. + Converted . + + + + Wire format for NLog event package. + + + + + Gets or sets the name of the client. + + The name of the client. + + + + Gets or sets the base time (UTC ticks) for all events in the package. + + The base time UTC. + + + + Gets or sets the collection of layout names which are shared among all events. + + The layout names. + + + + Gets or sets the collection of logger names. + + The logger names. + + + + Gets or sets the list of events. + + The events. + + + + Converts the events to sequence of objects suitable for routing through NLog. + + The logger name prefix to prepend in front of each logger name. + + Sequence of objects. + + + + + Converts the events to sequence of objects suitable for routing through NLog. + + + Sequence of objects. + + + + + List of strings annotated for more terse serialization. + + + + + Initializes a new instance of the class. + + + + + Log Receiver Client using WCF. + + + This class marked as obsolete before NLog 4.3.11 and it will be removed in a future release. + + It provides an implementation of the legacy interface and it will be completely obsolete when the + ILogReceiverClient is removed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Log Receiver Client facade. It allows the use either of the one way or two way + service contract using WCF through its unified interface. + + + Delegating methods are generated with Resharper. + 1. change ProxiedClient to private field (instead of public property) + 2. delegate members + 3. change ProxiedClient back to public property. + + + + + + The client getting proxied + + + + + Do we use one-way or two-way messaging? + + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + The binding. + The remote address. + + + + Causes a communication object to transition immediately from its current state into the closed state. + + + + + Begins an asynchronous operation to close a communication object. + + + The that references the asynchronous close operation. + + The delegate that receives notification of the completion of the asynchronous close operation.An object, specified by the application, that contains state information associated with the asynchronous close operation. was called on an object in the state.The default timeout elapsed before the was able to close gracefully. + + + + Begins an asynchronous operation to close a communication object with a specified timeout. + + + The that references the asynchronous close operation. + + The that specifies how long the send operation has to complete before timing out.The delegate that receives notification of the completion of the asynchronous close operation.An object, specified by the application, that contains state information associated with the asynchronous close operation. was called on an object in the state.The specified timeout elapsed before the was able to close gracefully. + + + + Begins an asynchronous operation to open a communication object. + + + The that references the asynchronous open operation. + + The delegate that receives notification of the completion of the asynchronous open operation.An object, specified by the application, that contains state information associated with the asynchronous open operation.The was unable to be opened and has entered the state.The default open timeout elapsed before the was able to enter the state and has entered the state. + + + + Begins an asynchronous operation to open a communication object within a specified interval of time. + + + The that references the asynchronous open operation. + + The that specifies how long the send operation has to complete before timing out.The delegate that receives notification of the completion of the asynchronous open operation.An object, specified by the application, that contains state information associated with the asynchronous open operation.The was unable to be opened and has entered the state.The specified timeout elapsed before the was able to enter the state and has entered the state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Enables the user to configure client and service credentials as well as service credential authentication settings for use on the client side of communication. + + + + + Causes a communication object to transition from its current state into the closed state. + + The that specifies how long the send operation has to complete before timing out. was called on an object in the state.The timeout elapsed before the was able to close gracefully. + + + + Causes a communication object to transition from its current state into the closed state. + + was called on an object in the state.The default close timeout elapsed before the was able to close gracefully. + + + + Closes the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Occurs when Close operation has completed. + + + + + Occurs when the communication object completes its transition from the closing state into the closed state. + + + + + Occurs when the communication object first enters the closing state. + + + + + Instructs the inner channel to display a user interface if one is required to initialize the channel prior to using it. + + + + + Completes an asynchronous operation to close a communication object. + + The that is returned by a call to the method. was called on an object in the state.The timeout elapsed before the was able to close gracefully. + + + + Completes an asynchronous operation to open a communication object. + + The that is returned by a call to the method.The was unable to be opened and has entered the state.The timeout elapsed before the was able to enter the state and has entered the state. + + + + Gets the target endpoint for the service to which the WCF client can connect. + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Occurs when the communication object first enters the faulted state. + + + + + Gets the underlying implementation. + + + + + Causes a communication object to transition from the created state into the opened state. + + The was unable to be opened and has entered the state.The default open timeout elapsed before the was able to enter the state and has entered the state. + + + + Causes a communication object to transition from the created state into the opened state within a specified interval of time. + + The that specifies how long the send operation has to complete before timing out.The was unable to be opened and has entered the state.The specified timeout elapsed before the was able to enter the state and has entered the state. + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Occurs when Open operation has completed. + + + + + Occurs when the communication object completes its transition from the opening state into the opened state. + + + + + Occurs when the communication object first enters the opening state. + + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Occurs when the log message processing has completed. + + + + + Gets the current state of the communication-oriented object. + + + The value of the of the object. + + + + + Causes a communication object to transition from its current state into the closed state. + + + + + Abstract base class for the WcfLogReceiverXXXWay classes. It can only be + used internally (see internal constructor). It passes off any Channel usage + to the inheriting class. + + Type of the WCF service. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Occurs when the log message processing has completed. + + + + + Occurs when Open operation has completed. + + + + + Occurs when Close operation has completed. + + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Closes the client asynchronously. + + User-specific state. + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Log Receiver Client using WCF. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Log Receiver Client using WCF. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + Mostly for compatibility with log4net. + + + + + + + + + + Gets the thread-local dictionary + + Must be true for any subsequent dictionary modification operation + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + + + + + + Simulate ImmutableDictionary behavior (which is not yet part of all .NET frameworks). + In future the real ImmutableDictionary could be used here to minimize memory usage and copying time. + + Must be true for any subsequent dictionary modification operation + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Mapped Diagnostics Context - used for log4net compatibility. + + This class marked as obsolete before NLog 2.0 and it may be removed in a future release. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified item exists in current thread MDC. + + + + Removes the specified item from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + + + + + + A mesage template + + + + The original template string. + This is the key passed to structured targets. + + + The list of literal parts, useful for string rendering. + It indicates the number of characters from the original string to print, + then there's a hole with how many chars to skip. + + "Hello {firstName} {lastName}!" + ------------------------------------- + â•‘P |S â•‘P|S â•‘P|Sâ•‘ + â•‘6 |11 â•‘1|10 â•‘1|0â•‘ + â•‘Hello |{firstName}â•‘ |{lastName}â•‘!â•‘ + + "{x} * 2 = {2x}" + -------------------- + â•‘P|S â•‘P |S â•‘ + â•‘0|3 â•‘7 |4 â•‘ + â•‘{x}â•‘ * 2 = |{2x}â•‘ + + The tricky part is escaped braces. They are represented by a skip = 0, + which is interpreted as "move one char forward, no hole". + + "Escaped }} is fun." + ---------------------- + â•‘P |Sâ•‘P |Sâ•‘ + â•‘9 |0â•‘8 |0â•‘ + â•‘Escaped }|}â•‘ is fun.|â•‘ + + + + This list of holes. It's used both to fill the string rendering + and to send values along the template to structured targets. + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Create a template, which is already parsed + + + + + + + + + Create a template, which is already parsed + + + + + + + + This is for testing only: recreates from the parsed data. + + + + This is for testing only: rebuilds the hole + + Add to this string builder + ref for performance + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Render templates + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + Do not fallback to StringBuilder.Format for positional templates. + The String Builder destination. + Parameters for the holes. + + + + Render a template to a string. + + The template. + The String Builder destination. + Culture. + Parameters for the holes. + Rendered template, never null. + + + + Convert Render or serialize a value, with optionnally backwardscompatible with + + + + Singleton + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serialising a scalar (string, int, NULL) or simple type (IFormattable) + + + + + + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + formatstring of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Nested Diagnostics Context - for log4net compatibility. + + This class marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top object off the NDC stack. The object is removed from the stack. + + The top object from the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all objects on the NDC stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + Mostly for compatibility with log4net. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Resets the stack to the original count during . + + + + + Initializes a new instance of the class. + + The stack. + The previous count. + + + + Reverts the stack to original item count. + + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwardscompatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the current scope, and returns its start time + + Scope Creation Time + + + + Peeks the first scope, and returns its start time + + Scope Creation Time + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Writes log messages to the console with customizable coloring. + + Documentation on NLog Wiki + + + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified log event to the console highlighting entries + and words based on a set of defined rules. + + Log event. + + + + Color pair (foreground and background). + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the Console.Out or + Console.Error depending on the value of the Error flag. + + The logging event. + + Note that the Error option is not supported on .NET Compact Framework. + + + + + Write to output + + text to be written. + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + Access this property will compile the Regex. + + + + Get regex options. + + Default option to start with. + + + + + Get Expression for a . + + + + + + Replace regex result + + + + + + + Information about database command + parameters. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the type of the command. + + The type of the command. + + + + + Gets or sets the connection string to run the command against. If not provided, connection string from the target is used. + + + + + + Gets or sets the command text. + + + + + + Gets or sets a value indicating whether to ignore failures. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Represents a parameter to a Database target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the parameter. + The parameter layout. + + + + Gets or sets the database parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Gets or sets the database parameter size. + + + + + + Gets or sets the database parameter precision. + + + + + + Gets or sets the database parameter scale. + + + + + + Writes log messages to the database using an ADO.NET provider. + + + - NETSTANDARD cannot load connectionstrings from .config + + Documentation on NLog Wiki + + + The configuration is dependent on the database type, because + there are differnet methods of specifying connection string, SQL + command and command parameters. + + MS SQL Server using System.Data.SqlClient: + + Oracle using System.Data.OracleClient: + + Oracle using System.Data.OleDBClient: + + To set up the log target programmatically use code like this (an equivalent of MSSQL configuration): + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the name of the database provider. + + + + The parameter name should be a provider invariant name as registered in machine.config or app.config. Common values are: + +
    +
  • System.Data.SqlClient - SQL Sever Client
  • +
  • System.Data.SqlServerCe.3.5 - SQL Sever Compact 3.5
  • +
  • System.Data.OracleClient - Oracle Client from Microsoft (deprecated in .NET Framework 4)
  • +
  • Oracle.DataAccess.Client - ODP.NET provider from Oracle
  • +
  • System.Data.SQLite - System.Data.SQLite driver for SQLite
  • +
  • Npgsql - Npgsql driver for PostgreSQL
  • +
  • MySql.Data.MySqlClient - MySQL Connector/Net
  • +
+ (Note that provider invariant names are not supported on .NET Compact Framework). + + Alternatively the parameter value can be be a fully qualified name of the provider + connection type (class implementing ) or one of the following tokens: + +
    +
  • sqlserver, mssql, microsoft or msde - SQL Server Data Provider
  • +
  • oledb - OLEDB Data Provider
  • +
  • odbc - ODBC Data Provider
  • +
+
+ +
+ + + Gets or sets the name of the connection string (as specified in <connectionStrings> configuration section. + + + + + + Gets or sets the connection string. When provided, it overrides the values + specified in DBHost, DBUserName, DBPassword, DBDatabase. + + + + + + Gets or sets the connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. + + + + + + Gets the installation DDL commands. + + + + + + Gets the uninstallation DDL commands. + + + + + + Gets or sets a value indicating whether to keep the + database connection open between the log events. + + + + + + Obsolete - value will be ignored! The logging code always runs outside of transaction. + + Gets or sets a value indicating whether to use database transactions. + Some data providers require this. + + + + This option was removed in NLog 4.0 because the logging code always runs outside of transaction. + This ensures that the log gets written to the database if you rollback the main transaction because of an error and want to log the error. + + + + + Gets or sets the database host name. If the ConnectionString is not provided + this value will be used to construct the "Server=" part of the + connection string. + + + + + + Gets or sets the database user name. If the ConnectionString is not provided + this value will be used to construct the "User ID=" part of the + connection string. + + + + + + Gets or sets the database password. If the ConnectionString is not provided + this value will be used to construct the "Password=" part of the + connection string. + + + + + + Gets or sets the database name. If the ConnectionString is not provided + this value will be used to construct the "Database=" part of the + connection string. + + + + + + Gets or sets the text of the SQL command to be run on each log level. + + + Typically this is a SQL INSERT statement or a stored procedure call. + It should use the database-specific parameters (marked as @parameter + for SQL server or :parameter for Oracle, other data providers + have their own notation) and not the layout renderers, + because the latter is prone to SQL injection attacks. + The layout renderers should be specified as <parameter /> elements instead. + + + + + + Gets or sets the type of the SQL command to be run on each log level. + + + This specifies how the command text is interpreted, as "Text" (default) or as "StoredProcedure". + When using the value StoredProcedure, the commandText-property would + normally be the name of the stored procedure. TableDirect method is not supported in this context. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Set the to use it for opening connections to the database. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the database. It creates + a new database command, prepares parameters for it by calculating + layouts and executes the command. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Build the connectionstring from the properties. + + + Using at first, and falls back to the properties , + , and + + Event to render the layout inside the properties. + + + + + Adds the given list of DatabaseParameterInfo to the given IDbCommand after transforming them into IDbDataParameters. + + The IDbCommand to add parameters to + The list of DatabaseParameterInfo to transform into IDbDataParameters and to add to the IDbCommand + The log event to base the parameter's layout rendering on. + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the attached debugger. + + The logging event. + + + + Mock target - useful for testing. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + Increases the number of messages. + + The logging event. + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialisation options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized succesfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ascii characters be encoded + JSON escaped string + + + + Get properties, cached for a type + + + + + + + Writes log message to the Event Log. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the name of the machine on which Event Log service is running. + + + + + + Gets or sets the layout that renders event ID. + + + + + + Gets or sets the layout that renders event Category. + + + + + + Optional entrytype. When not set, or when not convertable to then determined by + + + + + + Gets or sets the value to be used as the event Source. + + + By default this is the friendly name of the current AppDomain. + + + + + + Gets or sets the name of the Event Log to write to. This can be System, Application or + any user-defined name. + + + + + + Gets or sets the message length limit to write to the Event Log. + + MaxMessageLength cannot be zero or negative + + + + + Gets or sets the maximum Event log size in kilobytes. + + If null, the value won't be set. + + Default is 512 Kilobytes as specified by Eventlog API + + MaxKilobytes cannot be less than 64 or greater than 4194240 or not a multiple of 64. If null, use the default value + + + + + Gets or sets the action to take if the message is larger than the option. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Initializes the target. + + + + + Writes the specified logging event to the event log. + + The logging event. + + + + Get the entry type for logging the message. + + The logging event - for rendering the + + + + + Get the source, if and only if the source is fixed. + + null when not + Internal for unit tests + + + + Get the eventlog to write to. + + Event if the source needs to be rendered. + + + + + (re-)create a event source, if it isn't there. Works only with fixed sourcenames. + + sourcenaam. If source is not fixed (see , then pass null or emptystring. + always throw an Exception when there is an error + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The begging position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. When the number of archive files exceed the obsolete archives are deleted. + + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + + When the number of archive files exceed the obsolete archives are deleted. + + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. When the number of archive files + exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Determine if old archive files should be deleted. + + Maximum number of archive files that should be kept + when old archives should be deleted; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the + highest number. When the number of archive files exceed the obsolete + archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + Documentation on NLog Wiki + + + + Default clean up period of the initilized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + The maximum number of initialised files before clean up procedures are initiated, + to keep the number of initialised files to a minimum. Chose 25 to cater for monthly rolling of log-files. + + + + + This value disables file archiving based on the size. + + + + + Holds the initialised files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialised files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + Setting this property to True helps improve performance. + + + + + + Gets or sets the maximum number of log filenames that should be stored as existing. + + + The bigger this number is the longer it will take to write each log record. The smaller the number is + the higher the chance that the clean function will be run when no new files have been opened. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. If this number is negative the files are + not automatically closed after a period of inactivity. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. If this number is negative or zero + the files are not flushed by timer. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. + Choose: + + + Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. +

+ Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. +

+
+ +
+ + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicationg whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Returns estimated size for memory stream, based on events count and first event size in bytes. + + Count of events + Bytes count of first event + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occuring day of the week to return a DateTime for. + The DateTime of the next occuring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + Filename to archive. If null, then nothing to archive. + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialise a file to be used by the instance. Based on the number of initialised + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Invokes the archiving and clean up of older archive file based on the values of and properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formating and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Interface for serialization of values, maybe even objects to JSON format. + Useful for wrappers for existing serializers. + + + + + Returns a serialization of an object + into JSON format. + + The object to serialize to JSON. + Serialized value (null = Serialize failed). + + + + Options for JSON serialisation + + + + + Add quotes arround object keys? + + + + + Formatprovider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + Initializes a new instance of the class. + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms + and data structures like a hash table. + + + + + Determines whether the specified is + equal to this instance. + + The to compare with + this instance. + + Value of true if the specified + is equal to this instance; otherwise, false. + + + The parameter is null. + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + + true if this converter can perform the conversion; otherwise, false. + + An that provides a format context. A that represents the type you want to convert from. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + + An that represents the converted value. + + An that provides a format context. The to use as the current culture. The to convert. The conversion cannot be performed. + + + + Sends log messages to a NLog Receiver Service (using WCF or Web Services). + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the endpoint address. + + The endpoint address. + + + + + Gets or sets the name of the endpoint configuration in WCF configuration file. + + The name of the endpoint configuration. + + + + + Gets or sets a value indicating whether to use binary message encoding. + + + + + + Gets or sets a value indicating whether to use a WCF service contract that is one way (fire and forget) or two way (request-reply) + + + + + + Gets or sets the client ID. + + The client ID. + + + + + Gets the list of parameters. + + The parameters. + + + + + Gets or sets a value indicating whether to include per-event properties in the payload sent to the server. + + + + + + Called when log events are being sent (test hook). + + The events. + The async continuations. + True if events should be sent, false to stop processing them. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Append" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Add value to the , returns ordinal in + + + lookup so only unique items will be added to + value to add + + + + + Creating a new instance of WcfLogReceiverClient + + Inheritors can override this method and provide their own + service configuration - binding and endpoint address + + This method marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creating a new instance of IWcfLogReceiverClient + + Inheritors can override this method and provide their own + service configuration - binding and endpoint address + + + virtual is used by endusers + + + + Sends log messages by email using SMTP protocol. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets the mailSettings/smtp configuration from app.config in cases when we need those configuration. + E.g when UseSystemNetMailSettings is enabled and we need to read the From attribute from system.net/mailSettings/smtp + + Internal for mocking + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinit waiting + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Renders an array logging events. + + Array of logging events. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mailmessage + + event for rendering layouts + string to group on + + + + Append rendered layout to the stringbuilder + + append to this + event for rendering + append if not null + + + + Create the mailmessage with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to an ArrayList in memory for programmatic retrieval. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + Initializes the target. + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will be very slow. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6) (not supported on Windows Phone 7.0)
  • +
  • tcp4://host:port - force TCP/IPv4 (not supported on Windows Phone 7.0)
  • +
  • tcp6://host:port - force TCP/IPv6 (not supported on Windows Phone 7.0)
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6, not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp4://host:port - force UDP/IPv4 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp6://host:port - force UDP/IPv6 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). + + + + + + Gets or sets the maximum current connections. 0 = no maximum. + + + + + + Gets or sets the action that should be taken if the will be more connections than . + + + + + + Gets or sets the maximum queue size. + + + + + + Gets or sets the action that should be taken if the message is larger than + maxMessageSize. + + + + + + Gets or sets the encoding to be used. + + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + The action to be taken when there are more connections then the max. + + + + + Just allow it. + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. + + + + + Discard the entire message. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Sends log messages to the remote instance of NLog Viewer. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include stack contents. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Outputs log messages through the OutputDebugString() Win32 API. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Outputs the rendered logging event through the OutputDebugString() Win32 API. + + The logging event. + + + + Increments specified performance counter on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+ + TODO: + 1. Unable to create a category allowing multiple counter instances (.Net 2.0 API only, probably) + 2. Is there any way of adding new counters without deleting the whole category? + 3. There should be some mechanism of resetting the counter (e.g every day starts from 0), or auto-switching to + another counter instance (with dynamic creation of new instance). This could be done with layouts. + +
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether performance counter should be automatically created. + + + + + + Gets or sets the name of the performance counter category. + + + + + + Gets or sets the name of the performance counter. + + + + + + Gets or sets the performance counter instance name. + + + + + + Gets or sets the counter help text. + + + + + + Gets or sets the performance counter type. + + + + + + The value by which to increment the counter. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Increments the configured performance counter. + + Log event. + + + + Closes the target and releases any unmanaged resources. + + + + + Ensures that the performance counter has been initialized. + + True if the performance counter is operational, false otherwise. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Can be used if has been enabled. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Closes the target and releases any unmanaged resources. + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + NOTE! Obsolete, instead override WriteAsyncThreadSafe(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target, in a thread safe manner. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the event info in layout. + + The layout. + The event info. + String representing log event. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Marks class as a logging target and assigns a name to it. + + This attribute is not required when registering the target in the API. + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + Represents target that supports context capture using MDLC, MDC, NDLC and NDC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of MDC context + + + Internal Layout that allows capture of NDC context + + + Internal Layout that allows capture of MDLC context + + + Internal Layout that allows capture of NDLC context + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the layout used to format log messages. + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the text to be rendered. + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Always use independent of + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + + + Write from input to output. Fix the UTF-8 bom + + + + + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued (-1 means everything). + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides asynchronous, buffered execution of target writes. + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queueing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the limit of full s to write before yielding into + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent statisfies the . + If condition isn't set, flushes on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes the target. + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The aciton to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target. + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Writes logging event to the log target. + + Logging event to be written out. + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + The method remembers the last-known-successful target + and starts the iteration from it. + If is set, the method + resets the target to the first target + stored in . + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + Impersonates another user for the duration of the write. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Gets or sets username to change context to. + + + + + + Gets or sets the user account password. + + + + + + Gets or sets Windows domain name to change context to. + + + + + + Gets or sets the Logon Type. + + + + + + Gets or sets the type of the logon provider. + + + + + + Gets or sets the required impersonation level. + + + + + + Gets or sets a value indicating whether to revert to the credentials of the process instead of impersonating another user. + + + + + + Initializes the impersonation context. + + + + + Closes the impersonation context. + + + + + Changes the security context, forwards the call to the .Write() + and switches the context back to original. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Changes the security context, forwards the call to the .Write() + and switches the context back to original. + + Log events. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Helper class which reverts the given + to its original value as part of . + + + + + Initializes a new instance of the class. + + The windows impersonation context. + + + + Reverts the impersonation context. + + + + + Limits the number of messages written per timespan to the wrapped target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the DateTime when the current will be reset. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Logon provider. + + + + + Use the standard logon provider for the system. + + + The default security provider is negotiate, unless you pass NULL for the domain name and the user name + is not in UPN format. In this case, the default provider is NTLM. + NOTE: Windows 2000/NT: The default security provider is NTLM. + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Sends log messages to a randomly selected target. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Impersonation level. + + + + + Anonymous Level. + + + + + Identification Level. + + + + + Impersonation Level. + + + + + Delegation Level. + + + + + Logon type. + + + + + Interactive Logon. + + + This logon type is intended for users who will be interactively using the computer, such as a user being logged on + by a terminal server, remote shell, or similar process. + This logon type has the additional expense of caching logon information for disconnected operations; + therefore, it is inappropriate for some client/server applications, + such as a mail server. + + + + + Network Logon. + + + This logon type is intended for high performance servers to authenticate plaintext passwords. + The LogonUser function does not cache credentials for this logon type. + + + + + Batch Logon. + + + This logon type is intended for batch servers, where processes may be executing on behalf of a user without + their direct intervention. This type is also for higher performance servers that process many plaintext + authentication attempts at a time, such as mail or Web servers. + The LogonUser function does not cache credentials for this logon type. + + + + + Logon as a Service. + + + Indicates a service-type logon. The account provided must have the service privilege enabled. + + + + + Network Clear Text Logon. + + + This logon type preserves the name and password in the authentication package, which allows the server to make + connections to other network servers while impersonating the client. A server can accept plaintext credentials + from a client, call LogonUser, verify that the user can access the system across the network, and still + communicate with other servers. + NOTE: Windows NT: This value is not supported. + + + + + New Network Credentials. + + + This logon type allows the caller to clone its current token and specify new credentials for outbound connections. + The new logon session has the same local identifier but uses different credentials for other network connections. + NOTE: This logon type is supported only by the LOGON32_PROVIDER_WINNT50 logon provider. + NOTE: Windows NT: This value is not supported. + + + + + Writes log events to all targets. + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the time source. + +
+
diff --git a/MTC_Adapter/packages/NLog.4.5.11/lib/net40-client/NLog.xml b/MTC_Adapter/packages/NLog.4.5.11/lib/net40-client/NLog.xml new file mode 100644 index 0000000..52614f3 --- /dev/null +++ b/MTC_Adapter/packages/NLog.4.5.11/lib/net40-client/NLog.xml @@ -0,0 +1,26704 @@ + + + + NLog + + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + internal class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + internal class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + internal class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + internal class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without wating) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + A value of true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + String Conversion Helpers + + + + + Converts input string value into + + Input value + Output value + Default value + Returns failure if the input value could not be parsed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + NLog internal logger. + + Writes to file, console or custom textwriter (see ) + + + Don't use as that can lead to recursive calls - stackoverflows + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Initializes static members of the InternalLogger class. + + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled. + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Relese configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the number of items in the array. + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Base class for representing nodes in condition expression trees. + + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + Returns a string representation of this expression. + + String literal in single quotes. + + + + Evaluates the expression by calculating the value + of the layout in the specified evaluation context. + + Evaluation context. + The value of the layout. + + + + Condition level expression (represented by the level keyword). + + + + + Returns a string representation of the expression. + + The 'level' string. + + + + Evaluates to the current log level. + + Evaluation context. Ignored. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + Returns a string representation of the expression. + + The literal value. + + + + Evaluates the expression. + + Evaluation context. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + Returns a string representation of this expression. + + A logger string. + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + Returns a string representation of this expression. + + The 'message' string. + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters. + + The method parameters. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Marks the class as containing condition methods. + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparision, e.g. parse a string to int. + + + + + + + Promoto to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparision. + + + index, 0 to maxint. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properies are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + New event args + + + + + + The assembly that is trying to load. + + + + + NLog configuration section handler class for configuring NLog from App.config. + + + + + Creates a configuration section handler. + + Parent object. + Configuration context object. + Section XML node. + The created section handler object. + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwardscomp. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Legacy interface, no longer used by the NLog engine + + + + + Gets or sets the JSON serializer to use with or + + + + + Gets or sets the string serializer to use with + + + + + Perform mesage template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in NLog.Extended.dll using late-bound types, so that we don't need a reference to NLog.Extended.dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Format of the excpetion output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + Registers a single type definition. + + The item name. + The type of the item. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Creates an item instance. + + The name of the item. + Created item. + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during installation/uninstallations. + + Log event info object. + + + + Keeps logging configuration and provides simple API + to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Variables defined in xml or in API. name is case case insensitive. + + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete on NLog 4.1 and it may be removed in a future release. + + + + Gets the variables defined in the configuration. + + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Compare objects based on their name. + + This property is use to cache the comparer object. + + + + Defines methods to support the comparison of objects for equality based on their name. + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for alle loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Flushes any pending log messages on all appenders. + + The asynchronous continuation. + + + + Validates the configuration. + + + + + Copies all variables from provided dictionary into current configuration variables. + + Master variables dictionary + + + + Replace a simple variable with a value. The orginal value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the new configuration + + The new configuration. + + + + Gets the old configuration + + The old configuration. + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or see cref="EnableLoggingForLevels"/> to enable logging. + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Target to be written to when the rule matches. + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + + Gets or sets logger name pattern. + + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends but not anywhere else. + + + + + Gets the collection of log levels enabled by this rule. + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to de disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + >Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + A that represents the current . + + + + + Checks whether te particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Factory for locating methods. + + The type of the class marker attribute. + The type of the method marker attribute. + + + + Gets a collection of all registered items in the factory. + + + Sequence of key/value pairs where each key represents the name + of the item and value is the of + the item. + + + + + Scans the assembly for classes marked with + and methods marked with and adds them + to the factory. + + The types to scan. + The prefix to use for names. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a simple name to an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The name of the item. + + + + Gets the name of the item. + + The name of the item. + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The input URI. + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Prevents a default instance of the class from being created. + + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Last error occured during configuration read + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Gets the required attribute. + + Name of the attribute. + Attribute value. + Throws if the attribute is not specified. + + + + Gets the optional boolean attribute value. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional boolean attribute value. If whitespace, then returning null. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional attribute value. + + Name of the attribute. + The default value. + Value of the attribute or default value. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Returns all parsing errors from current and all child elements. + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + Stack trace should not be captured. + + + + + Stack trace should be captured without source-level information. + + + + + Stack trace should be captured including source-level information such as line numbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + If set to true errors will be ignored during file processing. + + + + Gets the default object by parsing + the application configuration file (app.exe.config). + + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Remove all spaces, also in between text. + + text + text without spaces + Tabs and other whitespace is not removed! + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Checks whether any error during XML configuration parsing has occured. + If there are any and ThrowConfigExceptions or ThrowExceptions + setting is enabled - throws NLogConfigurationException, otherwise + just write an internal log at Warn level. + + Root NLog configuration xml element + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + Rules are added to this parameter. + + + + Split list on comma, trim items + + + no empty items + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language + described here. + + + + + Gets or sets the condition expression. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Can be used if has been enabled. + + + + + Constructor + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Global Diagnostics Context - used for log4net compatibility. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Include context properties + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Extensions for NLog . + + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Internal configuration manager used to read .NET configuration files. + Just a wrapper around the BCL ConfigurationManager, but used to enable + unit testing. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Provides untyped IDictionary interface on top of generic IDictionary. + + The type of the key. + The type of the value. + + + + Initializes a new instance of the DictionaryAdapter class. + + The implementation. + + + + Gets an object containing the values in the object. + + + + An object containing the values in the object. + + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + + Gets an object containing the keys of the object. + + + + An object containing the keys of the object. + + + + + Gets or sets the with the specified key. + + Dictionary key. + Value corresponding to key or null if not found + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + + Removes all elements from the object. + + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + True if the contains an element with the key; otherwise, false. + + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Wrapper IDictionaryEnumerator. + + + + + Initializes a new instance of the class. + + The wrapped. + + + + Gets both the key and the value of the current dictionary entry. + + + + A containing both the key and the value of the current dictionary entry. + + + + + Gets the key of the current dictionary entry. + + + + The key of the current element of the enumeration. + + + + + Gets the value of the current dictionary entry. + + + + The value of the current element of the enumeration. + + + + + Gets the current element in the collection. + + + + The current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + + True if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Object construction helper. + + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Interface for fakeable the current . Not fully implemented, please methods/properties as necessary. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appeander is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Closes this instance of the appender. + + + + + Flushes this current appender. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Factory class which creates objects. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialisation as it is an + intenal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + Thrown when is called on an Empty instance. + + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialised before the supplied time. + + The time which prior the appenders considered expired + + + + Fluch all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multiprocess-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Closes this instance. + + + + + Flushes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Provides a multiprocess-safe atomic file append while + keeping the files open. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Creates or opens a file in a special mode, so that writes are automatically + as atomic writes at the file end. + See also "UnixMultiProcessFileAppender" which does a similar job on *nix platforms. + + File to create or open + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Closes this instance. + + + + + Flushes this instance. + + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + An immutable object that stores basic file info. + + + + + Constructs a FileCharacteristics object. + + The time the file was created in UTC. + The time the file was last written to in UTC. + The size of the file in bytes. + + + + The time the file was created in UTC. + + + + + The time the file was last written to in UTC. + + + + + The size of the file in bytes. + + + + + Optimized routines to get the basic file characteristics of the specified file. + + + + + Initializes static members of the FileCharacteristicsHelper class. + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid filenames char array to avoid memory allocation everytime Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Render the event info as parse as short + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as int + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as bool + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Logger configuration. + + + + + Initializes a new instance of the class. + + The targets by level. + Use the old exception log handling of NLog 3.0? + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete before NLog 4.3.11 and it will be removed in NLog 5. + + + + Gets targets for the specified level. + + The level. + Chain of targets with attached filters. + + + + Determines whether the specified level is enabled. + + The level. + + A value of true if the specified level is enabled; otherwise, false. + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes a continuation. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Performs sender-specific initialization. + + + + + Performs sender-specific close operation. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Parses the URI into an endpoint address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + Creates a new instance of the network sender based on a network URL:. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + /// + A newly created network sender. + + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Sends the specified text over the connected socket. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The address family. + Type of the socket. + Type of the protocol. + Implementation of to use. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Sends the specified text as a UDP datagram. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is a desktop version of Windows. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Portable implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Portable implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets current process ID. + + + + + + Gets current process name. + + + + + + Gets current process name (excluding filename extension, if any). + + + + + + Gets the name of the process. + + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Is this a property of the message? + + + + + + + Value of the property + Is this a property of the message? + + + + The properties of the logEvent + + + + + The properties extracted from the message + + + + + Injects the list of message-template-parameter into the IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The initially empty dictionary + Message-template-parameters was inserted into dictionary without trouble (true/false) + + + + Attempt to override the existing dictionary values using the message-template-parameters + + Message-template-parameters + The already filled dictionary + List of unique message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Is the property of array-type? + + Type which has the property + name of the property. + + + + + Get propertyinfo + + object which could have property + propertyname on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: http://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + Empty handle when is disabled + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Any operating system. + + + + + Unix/Linux operating systems. + + + + + Windows CE. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Unknown operating system. + + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid asssembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + formatstring. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Apend a int type (byte, int) as string + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Split a string + + + + + Split string with escape. The escape char is the same as the splitchar + + + split char. escaped also with this char + + + + + Split string with escape + + + + + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + cached result as calculating is expensive. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Returns details about current process and thread in a portable manner. + + + + + Initializes static members of the ThreadIDHelper class. + + + + + Gets the singleton instance of PortableThreadIDHelper or + Win32ThreadIDHelper depending on runtime environment. + + The instance. + + + + Gets current process ID. + + + + + Gets current process name. + + + + + Gets current process name (excluding filename extension, if any). + + + + + Helper for dealing with thread-local storage. + + + + + Allocates the data slot for storing thread-local information. + + Allocated slot key. + + + + Gets the data for a slot in thread-local storage. + + Type of the data. + The slot to get data for. + Automatically create the object if it doesn't exist. + + Slot data (will create T if null). + + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Win32-optimized implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Win32-optimized implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets current process ID. + + + + + + Gets current process name. + + + + + + Gets current process name (excluding filename extension, if any). + + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Renders all log event's properties and appends them to the specified . + + The to append the rendered data to. + Logging event. + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the , the second the second the + This string is used in + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Render the layout + + + + + + + Convert the formatting string + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + Initializes a new instance of the class. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + - Silverlight: Value for is always returned. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders an assembly version and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Gets the assembly specified by , or entry assembly otherwise + + Found assembly + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets additional version information. + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with with the base directory. + + + + + + Renders the application base directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source file name. Full callsite + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site (class name, method name and source information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A counter value (increases on each layout rendering). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + Renders the specified counter value and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + Renders the current directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current date and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + Renders the specified environment variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the name of the item. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. See . + + + + + Log event context data with default options. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + Renders the specified exception information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + Renders the contents of the specified file and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Create a new. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the garbage collector. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Global Diagnostics Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified Global Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Globally-unique identifier (GUID). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + Renders a newly generated GUID string and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Thread identity information (name and authentication information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + Renders the specified identity information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + Renders the specified installation parameter and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a , needed for date and number formats + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent and the current configuration. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Marks class as a layout renderer and assigns a name to it. + + This attribute is not required when registering the layout in the API. + + + + Initializes a new instance of the class. + + Name of the layout renderer, without the `${ }` + + + + Format of the ${level} layout renderer output. + + + + + Render the full level name. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Renders the current log level and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes the layout renderer. + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the XML logging event and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Renders the logger name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the date in the long format (yyyy-MM-dd HH:mm:ss.ffff) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The machine name that the process is running on. + + + + + Initializes the layout renderer. + + + + + Renders the machine name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Logical Context item (based on CallContext). + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDLC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + Renders the log message including any positional parameters and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Nested Diagnostic Context item. Provided for compatibility with log4net. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + Renders the specified Nested Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Renderer (Async scope) + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Renders the specified Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + Renders the timing details of the Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A newline literal. + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The directory where NLog.dll is located. + + + + + Initializes static members of the NLogDirLayoutRenderer class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The performance counter. + + + + + Gets or sets the name of the counter category. + + + + + + Gets or sets the name of the performance counter. + + + + + + Gets or sets the name of the performance counter instance (e.g. this.Global_). + + + + + + Gets or sets the name of the machine to read the performance counter from. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the specified environment variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current process. + + + + + Renders the current process ID. + + The to append the rendered data to. + Logging event. + + + + The information about the running process. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Renders the current process name (optionally with a full path). + + The to append the rendered data to. + Logging event. + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders the current process running time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + + + + High precision timer, based on the value returned from QueryPerformanceCounter() optionally converted to seconds. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to normalize the result by subtracting + it from the result of the first call (so that it's effectively zero-based). + + + + + + Gets or sets a value indicating whether to output the difference between the result + of QueryPerformanceCounter and the previous one. + + + + + + Gets or sets a value indicating whether to convert the result to seconds by dividing + by the result of QueryPerformanceFrequency(). + + + + + + Gets or sets the number of decimal digits to be included in output. + + + + + + Gets or sets a value indicating whether to align decimal point (emit non-significant zeros). + + + + + + Initializes the layout renderer. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A value from the Registry. + + + + + Create new renderer + + + + + Gets or sets the registry value name. + + + + + + Gets or sets the value to be output when the specified registry key or value is not found. + + + + + + Require escaping backward slashes in . Need to be backwardscompatible. + + When true: + + `\` in value should be configured as `\\` + `\\` in value should be configured as `\\\\`. + + Default value wasn't a Layout before and needed an escape of the slash + + + + + Gets or sets the registry view (see: https://msdn.microsoft.com/de-de/library/microsoft.win32.registryview.aspx). + Allowed values: Registry32, Registry64, Default + + + + + + Gets or sets the registry key. + + + HKCU\Software\NLogTest + + + Possible keys: +
    +
  • HKEY_LOCAL_MACHINE
  • +
  • HKLM
  • +
  • HKEY_CURRENT_USER
  • +
  • HKCU
  • +
  • HKEY_CLASSES_ROOT
  • +
  • HKEY_USERS
  • +
  • HKEY_CURRENT_CONFIG
  • +
  • HKEY_DYN_DATA
  • +
  • HKEY_PERFORMANCE_DATA
  • +
+
+ +
+ + + Reads the specified registry key and value and appends it to + the passed . + + The to append the rendered data to. + Logging event. Ignored. + + + + Has ? + + + + + Parse key to and subkey. + + full registry key name + Result of parsing, never null. + + + + Aliases for the hives. See https://msdn.microsoft.com/en-us/library/ctb3kd86(v=vs.110).aspx + + + + + The sequence ID + + + + + Renders the current log sequence ID and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current short date string (yyyy-MM-dd) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current thread. + + + + + Renders the current thread identifier and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The name of the current thread. + + + + + Renders the current thread name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The Ticks value of current date and time. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders time in the 24-h format (HH:mm:ss.mmm) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + Renders the current trace activity ID. + + The to append the rendered data to. + Logging event. + + + + Render a NLog variable (xml or config) + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Initializes the layout renderer. + + + + + Try get the + + + + + + + Renders the specified variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Thread Windows identity information (username). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets a value indicating whether username should be included. + + + + + + Renders the current thread windows identity information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply JSON encoding. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + RegistryLayoutRenderer + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Initializes the layout renderer. + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See http://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Trims the whitespace from the result of another layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + Renders the inner message, processes it and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + + Output to be transform. + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply XML encoding. + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Padded and trimmed string. + + + + A layout containing one or more nested layouts. + + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + Initializes the layout. + + + + + Formats the log event relying on inner layouts. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event relying on inner layouts. + + The logging event. + for the result + + + + Closes the layout. + + + + + Generate description of Compound Layout + + Compound Layout String Description + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + If is set, then the header generation with columnnames will be disabled. + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + Initializes the layout. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event for write. + + The logging event. + for the result + + + + Get the headers with the column names. + + + + + + Render 1 columnvalue (text or header) to + + write-to + current col index + col text + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Generate description of CSV Layout + + CSV Layout String Description + + + + Specifies CSV quoting modes. + + + + + Quote all column. + + + + + Quote nothing. + + + + + Quote only whose values contain the quote symbol or + the separator. + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Formats the log event as a JSON document for writing. + + The logging event. + for the result + + + + Formats the log event as a JSON document for writing. + + The log event to be formatted. + A JSON string representation of the log event. + + + + Generate description of JSON Layout + + JSON Layout String Description + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doens't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders the event info in layout. + + The event info. + String representing log event. + + + + Optimized version of for internal Layouts. Works best + when override of is available. + + The event info. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + StringBuilder to help minimize allocations [optional]. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Marks class as a layout renderer and assigns a format string to it. + + + + + Initializes a new instance of the class. + + Layout name. + + + + Parses layout strings. + + + + + Add to + + + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result. + + + + A specialized layout that renders Log4j-compatible XML events. + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Represents a string with embedded placeholders that can render contextual information. + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Returns a that represents the current object. + + + A that represents the current object. + + + + + Initializes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + for the result + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets the logger short name. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Gets the dictionary of per-event context properties. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + The exception. + Instance of . + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Set the + + true = Always, false = Never, null = Auto Detect + + + + Specialized LogFactory that can return instances of custom logger types. + + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the name of the current class and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. After setting this property all + existing loggers will be re-configured, so there is no need to call + manually. + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets the logger with the name of the current class. + + The logger with type . + Type of the logger + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The type of the logger to create. The type must inherit from + The logger of type . + This is a slow-running method. Make sure you are not calling this method in a + loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. Use to pass the type of the needed Logger. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Returns if logging is currently enabled. + + A value of if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this logfactory is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Gets the filter result. + + The filter chain. + The log event. + The result of the filter. + + + + Defines available log levels. + + + + + Trace log level. + + + + + Debug log level. + + + + + Info log level. + + + + + Warn log level. + + + + + Error log level. + + + + + Fatal log level. + + + + + Off log level. + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + + The object object. + + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Delegate used to set/get the culture in use. + + This delegate marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. + + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture to use. + + This property was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The logger class. The class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. Use to pass the type of the needed Logger. + + Name of the logger. + The logger class. The class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + An object that implements IDisposable whose Dispose() method reenables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Checks if logging is currently enabled. + + if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + Base implementation of a log receiver server which forwards received logs through or a given . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log factory. + + + + Processes the log messages. + + The events to process. + + + + Processes the log messages. + + The log events. + + + + Service contract for Log Receiver client. + + This class marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver server. + + + + + Processes the log messages. + + The events. + + + + Service contract for Log Receiver server. + + + + + Processes the log messages. + + The events. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Client of + + + + + Occurs when the log message processing has completed. + + + + + Occurs when Open operation has completed. + + + + + Occurs when Close operation has completed. + + + + + Enables the user to configure client and service credentials as well as service credential authentication settings for use on the client side of communication. + + + + + Gets the underlying implementation. + + + + + Gets the target endpoint for the service to which the WCF client can connect. + + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Closes the client asynchronously. + + User-specific state. + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Instructs the inner channel to display a user interface if one is required to initialize the channel prior to using it. + + + + + Implementation of which forwards received logs through or a given . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log factory. + + + + Implementation of which forwards received logs through or a given . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log factory. + + + + Internal configuration of Log Receiver Service contracts. + + + + + Wire format for NLog Event. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the client-generated identifier of the event. + + + + + Gets or sets the ordinal of the log level. + + + + + Gets or sets the logger ordinal (index into . + + The logger ordinal. + + + + Gets or sets the time delta (in ticks) between the time of the event and base time. + + + + + Gets or sets the message string index. + + + + + Gets or sets the collection of layout values. + + + + + Gets the collection of indexes into array for each layout value. + + + + + Converts the to . + + The object this is part of.. + The logger name prefix to prepend in front of the logger name. + Converted . + + + + Wire format for NLog event package. + + + + + Gets or sets the name of the client. + + The name of the client. + + + + Gets or sets the base time (UTC ticks) for all events in the package. + + The base time UTC. + + + + Gets or sets the collection of layout names which are shared among all events. + + The layout names. + + + + Gets or sets the collection of logger names. + + The logger names. + + + + Gets or sets the list of events. + + The events. + + + + Converts the events to sequence of objects suitable for routing through NLog. + + The logger name prefix to prepend in front of each logger name. + + Sequence of objects. + + + + + Converts the events to sequence of objects suitable for routing through NLog. + + + Sequence of objects. + + + + + List of strings annotated for more terse serialization. + + + + + Initializes a new instance of the class. + + + + + Log Receiver Client using WCF. + + + This class marked as obsolete before NLog 4.3.11 and it will be removed in a future release. + + It provides an implementation of the legacy interface and it will be completely obsolete when the + ILogReceiverClient is removed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Log Receiver Client facade. It allows the use either of the one way or two way + service contract using WCF through its unified interface. + + + Delegating methods are generated with Resharper. + 1. change ProxiedClient to private field (instead of public property) + 2. delegate members + 3. change ProxiedClient back to public property. + + + + + + The client getting proxied + + + + + Do we use one-way or two-way messaging? + + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + The binding. + The remote address. + + + + Causes a communication object to transition immediately from its current state into the closed state. + + + + + Begins an asynchronous operation to close a communication object. + + + The that references the asynchronous close operation. + + The delegate that receives notification of the completion of the asynchronous close operation.An object, specified by the application, that contains state information associated with the asynchronous close operation. was called on an object in the state.The default timeout elapsed before the was able to close gracefully. + + + + Begins an asynchronous operation to close a communication object with a specified timeout. + + + The that references the asynchronous close operation. + + The that specifies how long the send operation has to complete before timing out.The delegate that receives notification of the completion of the asynchronous close operation.An object, specified by the application, that contains state information associated with the asynchronous close operation. was called on an object in the state.The specified timeout elapsed before the was able to close gracefully. + + + + Begins an asynchronous operation to open a communication object. + + + The that references the asynchronous open operation. + + The delegate that receives notification of the completion of the asynchronous open operation.An object, specified by the application, that contains state information associated with the asynchronous open operation.The was unable to be opened and has entered the state.The default open timeout elapsed before the was able to enter the state and has entered the state. + + + + Begins an asynchronous operation to open a communication object within a specified interval of time. + + + The that references the asynchronous open operation. + + The that specifies how long the send operation has to complete before timing out.The delegate that receives notification of the completion of the asynchronous open operation.An object, specified by the application, that contains state information associated with the asynchronous open operation.The was unable to be opened and has entered the state.The specified timeout elapsed before the was able to enter the state and has entered the state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Enables the user to configure client and service credentials as well as service credential authentication settings for use on the client side of communication. + + + + + Causes a communication object to transition from its current state into the closed state. + + The that specifies how long the send operation has to complete before timing out. was called on an object in the state.The timeout elapsed before the was able to close gracefully. + + + + Causes a communication object to transition from its current state into the closed state. + + was called on an object in the state.The default close timeout elapsed before the was able to close gracefully. + + + + Closes the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Occurs when Close operation has completed. + + + + + Occurs when the communication object completes its transition from the closing state into the closed state. + + + + + Occurs when the communication object first enters the closing state. + + + + + Instructs the inner channel to display a user interface if one is required to initialize the channel prior to using it. + + + + + Completes an asynchronous operation to close a communication object. + + The that is returned by a call to the method. was called on an object in the state.The timeout elapsed before the was able to close gracefully. + + + + Completes an asynchronous operation to open a communication object. + + The that is returned by a call to the method.The was unable to be opened and has entered the state.The timeout elapsed before the was able to enter the state and has entered the state. + + + + Gets the target endpoint for the service to which the WCF client can connect. + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Occurs when the communication object first enters the faulted state. + + + + + Gets the underlying implementation. + + + + + Causes a communication object to transition from the created state into the opened state. + + The was unable to be opened and has entered the state.The default open timeout elapsed before the was able to enter the state and has entered the state. + + + + Causes a communication object to transition from the created state into the opened state within a specified interval of time. + + The that specifies how long the send operation has to complete before timing out.The was unable to be opened and has entered the state.The specified timeout elapsed before the was able to enter the state and has entered the state. + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Occurs when Open operation has completed. + + + + + Occurs when the communication object completes its transition from the opening state into the opened state. + + + + + Occurs when the communication object first enters the opening state. + + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Occurs when the log message processing has completed. + + + + + Gets the current state of the communication-oriented object. + + + The value of the of the object. + + + + + Causes a communication object to transition from its current state into the closed state. + + + + + Abstract base class for the WcfLogReceiverXXXWay classes. It can only be + used internally (see internal constructor). It passes off any Channel usage + to the inheriting class. + + Type of the WCF service. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Occurs when the log message processing has completed. + + + + + Occurs when Open operation has completed. + + + + + Occurs when Close operation has completed. + + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Closes the client asynchronously. + + User-specific state. + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Log Receiver Client using WCF. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Log Receiver Client using WCF. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + Mostly for compatibility with log4net. + + + + + + + + + + Gets the thread-local dictionary + + Must be true for any subsequent dictionary modification operation + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + + + + + + Simulate ImmutableDictionary behavior (which is not yet part of all .NET frameworks). + In future the real ImmutableDictionary could be used here to minimize memory usage and copying time. + + Must be true for any subsequent dictionary modification operation + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Mapped Diagnostics Context - used for log4net compatibility. + + This class marked as obsolete before NLog 2.0 and it may be removed in a future release. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified item exists in current thread MDC. + + + + Removes the specified item from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + + + + + + A mesage template + + + + The original template string. + This is the key passed to structured targets. + + + The list of literal parts, useful for string rendering. + It indicates the number of characters from the original string to print, + then there's a hole with how many chars to skip. + + "Hello {firstName} {lastName}!" + ------------------------------------- + â•‘P |S â•‘P|S â•‘P|Sâ•‘ + â•‘6 |11 â•‘1|10 â•‘1|0â•‘ + â•‘Hello |{firstName}â•‘ |{lastName}â•‘!â•‘ + + "{x} * 2 = {2x}" + -------------------- + â•‘P|S â•‘P |S â•‘ + â•‘0|3 â•‘7 |4 â•‘ + â•‘{x}â•‘ * 2 = |{2x}â•‘ + + The tricky part is escaped braces. They are represented by a skip = 0, + which is interpreted as "move one char forward, no hole". + + "Escaped }} is fun." + ---------------------- + â•‘P |Sâ•‘P |Sâ•‘ + â•‘9 |0â•‘8 |0â•‘ + â•‘Escaped }|}â•‘ is fun.|â•‘ + + + + This list of holes. It's used both to fill the string rendering + and to send values along the template to structured targets. + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Create a template, which is already parsed + + + + + + + + + Create a template, which is already parsed + + + + + + + + This is for testing only: recreates from the parsed data. + + + + This is for testing only: rebuilds the hole + + Add to this string builder + ref for performance + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Render templates + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + Do not fallback to StringBuilder.Format for positional templates. + The String Builder destination. + Parameters for the holes. + + + + Render a template to a string. + + The template. + The String Builder destination. + Culture. + Parameters for the holes. + Rendered template, never null. + + + + Convert Render or serialize a value, with optionnally backwardscompatible with + + + + Singleton + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serialising a scalar (string, int, NULL) or simple type (IFormattable) + + + + + + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + formatstring of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Nested Diagnostics Context - for log4net compatibility. + + This class marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top object off the NDC stack. The object is removed from the stack. + + The top object from the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all objects on the NDC stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + Mostly for compatibility with log4net. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Resets the stack to the original count during . + + + + + Initializes a new instance of the class. + + The stack. + The previous count. + + + + Reverts the stack to original item count. + + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwardscompatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the current scope, and returns its start time + + Scope Creation Time + + + + Peeks the first scope, and returns its start time + + Scope Creation Time + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + Override this to create the actual logging task + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Schedules the LogEventInfo for async writing + + The log event. + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation betweewn task-completion and timeout + + + + Creates new task to handle the writing of the input + + LogEvent to write + New Task created [true / false] + + + + Handles that scheduled task has completed (succesfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Writes log messages to the console with customizable coloring. + + Documentation on NLog Wiki + + + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified log event to the console highlighting entries + and words based on a set of defined rules. + + Log event. + + + + Color pair (foreground and background). + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the Console.Out or + Console.Error depending on the value of the Error flag. + + The logging event. + + Note that the Error option is not supported on .NET Compact Framework. + + + + + Write to output + + text to be written. + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + Access this property will compile the Regex. + + + + Get regex options. + + Default option to start with. + + + + + Get Expression for a . + + + + + + Replace regex result + + + + + + + Information about database command + parameters. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the type of the command. + + The type of the command. + + + + + Gets or sets the connection string to run the command against. If not provided, connection string from the target is used. + + + + + + Gets or sets the command text. + + + + + + Gets or sets a value indicating whether to ignore failures. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Represents a parameter to a Database target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the parameter. + The parameter layout. + + + + Gets or sets the database parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Gets or sets the database parameter size. + + + + + + Gets or sets the database parameter precision. + + + + + + Gets or sets the database parameter scale. + + + + + + Writes log messages to the database using an ADO.NET provider. + + + - NETSTANDARD cannot load connectionstrings from .config + + Documentation on NLog Wiki + + + The configuration is dependent on the database type, because + there are differnet methods of specifying connection string, SQL + command and command parameters. + + MS SQL Server using System.Data.SqlClient: + + Oracle using System.Data.OracleClient: + + Oracle using System.Data.OleDBClient: + + To set up the log target programmatically use code like this (an equivalent of MSSQL configuration): + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the name of the database provider. + + + + The parameter name should be a provider invariant name as registered in machine.config or app.config. Common values are: + +
    +
  • System.Data.SqlClient - SQL Sever Client
  • +
  • System.Data.SqlServerCe.3.5 - SQL Sever Compact 3.5
  • +
  • System.Data.OracleClient - Oracle Client from Microsoft (deprecated in .NET Framework 4)
  • +
  • Oracle.DataAccess.Client - ODP.NET provider from Oracle
  • +
  • System.Data.SQLite - System.Data.SQLite driver for SQLite
  • +
  • Npgsql - Npgsql driver for PostgreSQL
  • +
  • MySql.Data.MySqlClient - MySQL Connector/Net
  • +
+ (Note that provider invariant names are not supported on .NET Compact Framework). + + Alternatively the parameter value can be be a fully qualified name of the provider + connection type (class implementing ) or one of the following tokens: + +
    +
  • sqlserver, mssql, microsoft or msde - SQL Server Data Provider
  • +
  • oledb - OLEDB Data Provider
  • +
  • odbc - ODBC Data Provider
  • +
+
+ +
+ + + Gets or sets the name of the connection string (as specified in <connectionStrings> configuration section. + + + + + + Gets or sets the connection string. When provided, it overrides the values + specified in DBHost, DBUserName, DBPassword, DBDatabase. + + + + + + Gets or sets the connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. + + + + + + Gets the installation DDL commands. + + + + + + Gets the uninstallation DDL commands. + + + + + + Gets or sets a value indicating whether to keep the + database connection open between the log events. + + + + + + Obsolete - value will be ignored! The logging code always runs outside of transaction. + + Gets or sets a value indicating whether to use database transactions. + Some data providers require this. + + + + This option was removed in NLog 4.0 because the logging code always runs outside of transaction. + This ensures that the log gets written to the database if you rollback the main transaction because of an error and want to log the error. + + + + + Gets or sets the database host name. If the ConnectionString is not provided + this value will be used to construct the "Server=" part of the + connection string. + + + + + + Gets or sets the database user name. If the ConnectionString is not provided + this value will be used to construct the "User ID=" part of the + connection string. + + + + + + Gets or sets the database password. If the ConnectionString is not provided + this value will be used to construct the "Password=" part of the + connection string. + + + + + + Gets or sets the database name. If the ConnectionString is not provided + this value will be used to construct the "Database=" part of the + connection string. + + + + + + Gets or sets the text of the SQL command to be run on each log level. + + + Typically this is a SQL INSERT statement or a stored procedure call. + It should use the database-specific parameters (marked as @parameter + for SQL server or :parameter for Oracle, other data providers + have their own notation) and not the layout renderers, + because the latter is prone to SQL injection attacks. + The layout renderers should be specified as <parameter /> elements instead. + + + + + + Gets or sets the type of the SQL command to be run on each log level. + + + This specifies how the command text is interpreted, as "Text" (default) or as "StoredProcedure". + When using the value StoredProcedure, the commandText-property would + normally be the name of the stored procedure. TableDirect method is not supported in this context. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Set the to use it for opening connections to the database. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the database. It creates + a new database command, prepares parameters for it by calculating + layouts and executes the command. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Build the connectionstring from the properties. + + + Using at first, and falls back to the properties , + , and + + Event to render the layout inside the properties. + + + + + Adds the given list of DatabaseParameterInfo to the given IDbCommand after transforming them into IDbDataParameters. + + The IDbCommand to add parameters to + The list of DatabaseParameterInfo to transform into IDbDataParameters and to add to the IDbCommand + The log event to base the parameter's layout rendering on. + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the attached debugger. + + The logging event. + + + + Mock target - useful for testing. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + Increases the number of messages. + + The logging event. + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialisation options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized succesfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ascii characters be encoded + JSON escaped string + + + + Get properties, cached for a type + + + + + + + Writes log message to the Event Log. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the name of the machine on which Event Log service is running. + + + + + + Gets or sets the layout that renders event ID. + + + + + + Gets or sets the layout that renders event Category. + + + + + + Optional entrytype. When not set, or when not convertable to then determined by + + + + + + Gets or sets the value to be used as the event Source. + + + By default this is the friendly name of the current AppDomain. + + + + + + Gets or sets the name of the Event Log to write to. This can be System, Application or + any user-defined name. + + + + + + Gets or sets the message length limit to write to the Event Log. + + MaxMessageLength cannot be zero or negative + + + + + Gets or sets the maximum Event log size in kilobytes. + + If null, the value won't be set. + + Default is 512 Kilobytes as specified by Eventlog API + + MaxKilobytes cannot be less than 64 or greater than 4194240 or not a multiple of 64. If null, use the default value + + + + + Gets or sets the action to take if the message is larger than the option. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Initializes the target. + + + + + Writes the specified logging event to the event log. + + The logging event. + + + + Get the entry type for logging the message. + + The logging event - for rendering the + + + + + Get the source, if and only if the source is fixed. + + null when not + Internal for unit tests + + + + Get the eventlog to write to. + + Event if the source needs to be rendered. + + + + + (re-)create a event source, if it isn't there. Works only with fixed sourcenames. + + sourcenaam. If source is not fixed (see , then pass null or emptystring. + always throw an Exception when there is an error + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The begging position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. When the number of archive files exceed the obsolete archives are deleted. + + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + + When the number of archive files exceed the obsolete archives are deleted. + + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. When the number of archive files + exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Determine if old archive files should be deleted. + + Maximum number of archive files that should be kept + when old archives should be deleted; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the + highest number. When the number of archive files exceed the obsolete + archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + Documentation on NLog Wiki + + + + Default clean up period of the initilized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + The maximum number of initialised files before clean up procedures are initiated, + to keep the number of initialised files to a minimum. Chose 25 to cater for monthly rolling of log-files. + + + + + This value disables file archiving based on the size. + + + + + Holds the initialised files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialised files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + Setting this property to True helps improve performance. + + + + + + Gets or sets the maximum number of log filenames that should be stored as existing. + + + The bigger this number is the longer it will take to write each log record. The smaller the number is + the higher the chance that the clean function will be run when no new files have been opened. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. If this number is negative the files are + not automatically closed after a period of inactivity. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. If this number is negative or zero + the files are not flushed by timer. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. + Choose: + + + Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. +

+ Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. +

+
+ +
+ + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicationg whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Returns estimated size for memory stream, based on events count and first event size in bytes. + + Count of events + Bytes count of first event + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occuring day of the week to return a DateTime for. + The DateTime of the next occuring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + Filename to archive. If null, then nothing to archive. + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialise a file to be used by the instance. Based on the number of initialised + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Invokes the archiving and clean up of older archive file based on the values of and properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formating and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Interface for serialization of values, maybe even objects to JSON format. + Useful for wrappers for existing serializers. + + + + + Returns a serialization of an object + into JSON format. + + The object to serialize to JSON. + Serialized value (null = Serialize failed). + + + + Options for JSON serialisation + + + + + Add quotes arround object keys? + + + + + Formatprovider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + Initializes a new instance of the class. + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms + and data structures like a hash table. + + + + + Determines whether the specified is + equal to this instance. + + The to compare with + this instance. + + Value of true if the specified + is equal to this instance; otherwise, false. + + + The parameter is null. + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + + true if this converter can perform the conversion; otherwise, false. + + An that provides a format context. A that represents the type you want to convert from. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + + An that represents the converted value. + + An that provides a format context. The to use as the current culture. The to convert. The conversion cannot be performed. + + + + Sends log messages to a NLog Receiver Service (using WCF or Web Services). + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the endpoint address. + + The endpoint address. + + + + + Gets or sets the name of the endpoint configuration in WCF configuration file. + + The name of the endpoint configuration. + + + + + Gets or sets a value indicating whether to use binary message encoding. + + + + + + Gets or sets a value indicating whether to use a WCF service contract that is one way (fire and forget) or two way (request-reply) + + + + + + Gets or sets the client ID. + + The client ID. + + + + + Gets the list of parameters. + + The parameters. + + + + + Gets or sets a value indicating whether to include per-event properties in the payload sent to the server. + + + + + + Called when log events are being sent (test hook). + + The events. + The async continuations. + True if events should be sent, false to stop processing them. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Append" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Add value to the , returns ordinal in + + + lookup so only unique items will be added to + value to add + + + + + Creating a new instance of WcfLogReceiverClient + + Inheritors can override this method and provide their own + service configuration - binding and endpoint address + + This method marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creating a new instance of IWcfLogReceiverClient + + Inheritors can override this method and provide their own + service configuration - binding and endpoint address + + + virtual is used by endusers + + + + Sends log messages by email using SMTP protocol. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets the mailSettings/smtp configuration from app.config in cases when we need those configuration. + E.g when UseSystemNetMailSettings is enabled and we need to read the From attribute from system.net/mailSettings/smtp + + Internal for mocking + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinit waiting + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Renders an array logging events. + + Array of logging events. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mailmessage + + event for rendering layouts + string to group on + + + + Append rendered layout to the stringbuilder + + append to this + event for rendering + append if not null + + + + Create the mailmessage with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to an ArrayList in memory for programmatic retrieval. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + Initializes the target. + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will be very slow. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6) (not supported on Windows Phone 7.0)
  • +
  • tcp4://host:port - force TCP/IPv4 (not supported on Windows Phone 7.0)
  • +
  • tcp6://host:port - force TCP/IPv6 (not supported on Windows Phone 7.0)
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6, not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp4://host:port - force UDP/IPv4 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp6://host:port - force UDP/IPv6 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). + + + + + + Gets or sets the maximum current connections. 0 = no maximum. + + + + + + Gets or sets the action that should be taken if the will be more connections than . + + + + + + Gets or sets the maximum queue size. + + + + + + Gets or sets the action that should be taken if the message is larger than + maxMessageSize. + + + + + + Gets or sets the encoding to be used. + + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + The action to be taken when there are more connections then the max. + + + + + Just allow it. + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. + + + + + Discard the entire message. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Sends log messages to the remote instance of NLog Viewer. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include stack contents. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Outputs log messages through the OutputDebugString() Win32 API. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Outputs the rendered logging event through the OutputDebugString() Win32 API. + + The logging event. + + + + Increments specified performance counter on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+ + TODO: + 1. Unable to create a category allowing multiple counter instances (.Net 2.0 API only, probably) + 2. Is there any way of adding new counters without deleting the whole category? + 3. There should be some mechanism of resetting the counter (e.g every day starts from 0), or auto-switching to + another counter instance (with dynamic creation of new instance). This could be done with layouts. + +
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether performance counter should be automatically created. + + + + + + Gets or sets the name of the performance counter category. + + + + + + Gets or sets the name of the performance counter. + + + + + + Gets or sets the performance counter instance name. + + + + + + Gets or sets the counter help text. + + + + + + Gets or sets the performance counter type. + + + + + + The value by which to increment the counter. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Increments the configured performance counter. + + Log event. + + + + Closes the target and releases any unmanaged resources. + + + + + Ensures that the performance counter has been initialized. + + True if the performance counter is operational, false otherwise. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Can be used if has been enabled. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Closes the target and releases any unmanaged resources. + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + NOTE! Obsolete, instead override WriteAsyncThreadSafe(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target, in a thread safe manner. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the event info in layout. + + The layout. + The event info. + String representing log event. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Marks class as a logging target and assigns a name to it. + + This attribute is not required when registering the target in the API. + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + Represents target that supports context capture using MDLC, MDC, NDLC and NDC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of MDC context + + + Internal Layout that allows capture of NDC context + + + Internal Layout that allows capture of MDLC context + + + Internal Layout that allows capture of NDLC context + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the layout used to format log messages. + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the text to be rendered. + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Always use independent of + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + + + Write from input to output. Fix the UTF-8 bom + + + + + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued (-1 means everything). + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides asynchronous, buffered execution of target writes. + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queueing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the limit of full s to write before yielding into + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent statisfies the . + If condition isn't set, flushes on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes the target. + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The aciton to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target. + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Writes logging event to the log target. + + Logging event to be written out. + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + The method remembers the last-known-successful target + and starts the iteration from it. + If is set, the method + resets the target to the first target + stored in . + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + Impersonates another user for the duration of the write. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Gets or sets username to change context to. + + + + + + Gets or sets the user account password. + + + + + + Gets or sets Windows domain name to change context to. + + + + + + Gets or sets the Logon Type. + + + + + + Gets or sets the type of the logon provider. + + + + + + Gets or sets the required impersonation level. + + + + + + Gets or sets a value indicating whether to revert to the credentials of the process instead of impersonating another user. + + + + + + Initializes the impersonation context. + + + + + Closes the impersonation context. + + + + + Changes the security context, forwards the call to the .Write() + and switches the context back to original. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Changes the security context, forwards the call to the .Write() + and switches the context back to original. + + Log events. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Helper class which reverts the given + to its original value as part of . + + + + + Initializes a new instance of the class. + + The windows impersonation context. + + + + Reverts the impersonation context. + + + + + Limits the number of messages written per timespan to the wrapped target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the DateTime when the current will be reset. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Logon provider. + + + + + Use the standard logon provider for the system. + + + The default security provider is negotiate, unless you pass NULL for the domain name and the user name + is not in UPN format. In this case, the default provider is NTLM. + NOTE: Windows 2000/NT: The default security provider is NTLM. + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Sends log messages to a randomly selected target. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Impersonation level. + + + + + Anonymous Level. + + + + + Identification Level. + + + + + Impersonation Level. + + + + + Delegation Level. + + + + + Logon type. + + + + + Interactive Logon. + + + This logon type is intended for users who will be interactively using the computer, such as a user being logged on + by a terminal server, remote shell, or similar process. + This logon type has the additional expense of caching logon information for disconnected operations; + therefore, it is inappropriate for some client/server applications, + such as a mail server. + + + + + Network Logon. + + + This logon type is intended for high performance servers to authenticate plaintext passwords. + The LogonUser function does not cache credentials for this logon type. + + + + + Batch Logon. + + + This logon type is intended for batch servers, where processes may be executing on behalf of a user without + their direct intervention. This type is also for higher performance servers that process many plaintext + authentication attempts at a time, such as mail or Web servers. + The LogonUser function does not cache credentials for this logon type. + + + + + Logon as a Service. + + + Indicates a service-type logon. The account provided must have the service privilege enabled. + + + + + Network Clear Text Logon. + + + This logon type preserves the name and password in the authentication package, which allows the server to make + connections to other network servers while impersonating the client. A server can accept plaintext credentials + from a client, call LogonUser, verify that the user can access the system across the network, and still + communicate with other servers. + NOTE: Windows NT: This value is not supported. + + + + + New Network Credentials. + + + This logon type allows the caller to clone its current token and specify new credentials for outbound connections. + The new logon session has the same local identifier but uses different credentials for other network connections. + NOTE: This logon type is supported only by the LOGON32_PROVIDER_WINNT50 logon provider. + NOTE: Windows NT: This value is not supported. + + + + + Writes log events to all targets. + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the time source. + +
+
diff --git a/MTC_Adapter/packages/NLog.4.5.11/lib/net45/NLog.xml b/MTC_Adapter/packages/NLog.4.5.11/lib/net45/NLog.xml new file mode 100644 index 0000000..5e7cbbf --- /dev/null +++ b/MTC_Adapter/packages/NLog.4.5.11/lib/net45/NLog.xml @@ -0,0 +1,26901 @@ + + + + NLog + + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + internal class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + internal class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + internal class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + internal class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without wating) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + A value of true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + String Conversion Helpers + + + + + Converts input string value into + + Input value + Output value + Default value + Returns failure if the input value could not be parsed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + NLog internal logger. + + Writes to file, console or custom textwriter (see ) + + + Don't use as that can lead to recursive calls - stackoverflows + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Initializes static members of the InternalLogger class. + + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled. + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Relese configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the number of items in the array. + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Base class for representing nodes in condition expression trees. + + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + Returns a string representation of this expression. + + String literal in single quotes. + + + + Evaluates the expression by calculating the value + of the layout in the specified evaluation context. + + Evaluation context. + The value of the layout. + + + + Condition level expression (represented by the level keyword). + + + + + Returns a string representation of the expression. + + The 'level' string. + + + + Evaluates to the current log level. + + Evaluation context. Ignored. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + Returns a string representation of the expression. + + The literal value. + + + + Evaluates the expression. + + Evaluation context. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + Returns a string representation of this expression. + + A logger string. + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + Returns a string representation of this expression. + + The 'message' string. + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters. + + The method parameters. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Marks the class as containing condition methods. + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparision, e.g. parse a string to int. + + + + + + + Promoto to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparision. + + + index, 0 to maxint. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properies are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + New event args + + + + + + The assembly that is trying to load. + + + + + NLog configuration section handler class for configuring NLog from App.config. + + + + + Creates a configuration section handler. + + Parent object. + Configuration context object. + Section XML node. + The created section handler object. + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwardscomp. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Legacy interface, no longer used by the NLog engine + + + + + Gets or sets the JSON serializer to use with or + + + + + Gets or sets the string serializer to use with + + + + + Perform mesage template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in NLog.Extended.dll using late-bound types, so that we don't need a reference to NLog.Extended.dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Format of the excpetion output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + Registers a single type definition. + + The item name. + The type of the item. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Creates an item instance. + + The name of the item. + Created item. + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during installation/uninstallations. + + Log event info object. + + + + Keeps logging configuration and provides simple API + to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Variables defined in xml or in API. name is case case insensitive. + + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete on NLog 4.1 and it may be removed in a future release. + + + + Gets the variables defined in the configuration. + + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Compare objects based on their name. + + This property is use to cache the comparer object. + + + + Defines methods to support the comparison of objects for equality based on their name. + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for alle loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Flushes any pending log messages on all appenders. + + The asynchronous continuation. + + + + Validates the configuration. + + + + + Copies all variables from provided dictionary into current configuration variables. + + Master variables dictionary + + + + Replace a simple variable with a value. The orginal value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the new configuration + + The new configuration. + + + + Gets the old configuration + + The old configuration. + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or see cref="EnableLoggingForLevels"/> to enable logging. + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Target to be written to when the rule matches. + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + + Gets or sets logger name pattern. + + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends but not anywhere else. + + + + + Gets the collection of log levels enabled by this rule. + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to de disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + >Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + A that represents the current . + + + + + Checks whether te particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Factory for locating methods. + + The type of the class marker attribute. + The type of the method marker attribute. + + + + Gets a collection of all registered items in the factory. + + + Sequence of key/value pairs where each key represents the name + of the item and value is the of + the item. + + + + + Scans the assembly for classes marked with + and methods marked with and adds them + to the factory. + + The types to scan. + The prefix to use for names. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a simple name to an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The name of the item. + + + + Gets the name of the item. + + The name of the item. + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The input URI. + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Prevents a default instance of the class from being created. + + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Last error occured during configuration read + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Gets the required attribute. + + Name of the attribute. + Attribute value. + Throws if the attribute is not specified. + + + + Gets the optional boolean attribute value. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional boolean attribute value. If whitespace, then returning null. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional attribute value. + + Name of the attribute. + The default value. + Value of the attribute or default value. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Returns all parsing errors from current and all child elements. + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + Stack trace should not be captured. + + + + + Stack trace should be captured without source-level information. + + + + + Stack trace should be captured including source-level information such as line numbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + If set to true errors will be ignored during file processing. + + + + Gets the default object by parsing + the application configuration file (app.exe.config). + + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Remove all spaces, also in between text. + + text + text without spaces + Tabs and other whitespace is not removed! + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Checks whether any error during XML configuration parsing has occured. + If there are any and ThrowConfigExceptions or ThrowExceptions + setting is enabled - throws NLogConfigurationException, otherwise + just write an internal log at Warn level. + + Root NLog configuration xml element + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + Rules are added to this parameter. + + + + Split list on comma, trim items + + + no empty items + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language + described here. + + + + + Gets or sets the condition expression. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Can be used if has been enabled. + + + + + Constructor + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Global Diagnostics Context - used for log4net compatibility. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Include context properties + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Extensions for NLog . + + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Internal configuration manager used to read .NET configuration files. + Just a wrapper around the BCL ConfigurationManager, but used to enable + unit testing. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Provides untyped IDictionary interface on top of generic IDictionary. + + The type of the key. + The type of the value. + + + + Initializes a new instance of the DictionaryAdapter class. + + The implementation. + + + + Gets an object containing the values in the object. + + + + An object containing the values in the object. + + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + + Gets an object containing the keys of the object. + + + + An object containing the keys of the object. + + + + + Gets or sets the with the specified key. + + Dictionary key. + Value corresponding to key or null if not found + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + + Removes all elements from the object. + + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + True if the contains an element with the key; otherwise, false. + + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Wrapper IDictionaryEnumerator. + + + + + Initializes a new instance of the class. + + The wrapped. + + + + Gets both the key and the value of the current dictionary entry. + + + + A containing both the key and the value of the current dictionary entry. + + + + + Gets the key of the current dictionary entry. + + + + The key of the current element of the enumeration. + + + + + Gets the value of the current dictionary entry. + + + + The value of the current element of the enumeration. + + + + + Gets the current element in the collection. + + + + The current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + + True if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Object construction helper. + + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Interface for fakeable the current . Not fully implemented, please methods/properties as necessary. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appeander is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Closes this instance of the appender. + + + + + Flushes this current appender. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Factory class which creates objects. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialisation as it is an + intenal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + Thrown when is called on an Empty instance. + + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialised before the supplied time. + + The time which prior the appenders considered expired + + + + Fluch all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multiprocess-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Closes this instance. + + + + + Flushes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Provides a multiprocess-safe atomic file append while + keeping the files open. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Creates or opens a file in a special mode, so that writes are automatically + as atomic writes at the file end. + See also "UnixMultiProcessFileAppender" which does a similar job on *nix platforms. + + File to create or open + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Closes this instance. + + + + + Flushes this instance. + + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + An immutable object that stores basic file info. + + + + + Constructs a FileCharacteristics object. + + The time the file was created in UTC. + The time the file was last written to in UTC. + The size of the file in bytes. + + + + The time the file was created in UTC. + + + + + The time the file was last written to in UTC. + + + + + The size of the file in bytes. + + + + + Optimized routines to get the basic file characteristics of the specified file. + + + + + Initializes static members of the FileCharacteristicsHelper class. + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid filenames char array to avoid memory allocation everytime Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Render the event info as parse as short + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as int + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as bool + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Logger configuration. + + + + + Initializes a new instance of the class. + + The targets by level. + Use the old exception log handling of NLog 3.0? + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete before NLog 4.3.11 and it will be removed in NLog 5. + + + + Gets targets for the specified level. + + The level. + Chain of targets with attached filters. + + + + Determines whether the specified level is enabled. + + The level. + + A value of true if the specified level is enabled; otherwise, false. + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes a continuation. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Performs sender-specific initialization. + + + + + Performs sender-specific close operation. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Parses the URI into an endpoint address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + Creates a new instance of the network sender based on a network URL:. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + /// + A newly created network sender. + + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Sends the specified text over the connected socket. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The address family. + Type of the socket. + Type of the protocol. + Implementation of to use. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Sends the specified text as a UDP datagram. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is a desktop version of Windows. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Portable implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Portable implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets current process ID. + + + + + + Gets current process name. + + + + + + Gets current process name (excluding filename extension, if any). + + + + + + Gets the name of the process. + + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Is this a property of the message? + + + + + + + Value of the property + Is this a property of the message? + + + + The properties of the logEvent + + + + + The properties extracted from the message + + + + + Injects the list of message-template-parameter into the IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The initially empty dictionary + Message-template-parameters was inserted into dictionary without trouble (true/false) + + + + Attempt to override the existing dictionary values using the message-template-parameters + + Message-template-parameters + The already filled dictionary + List of unique message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Is the property of array-type? + + Type which has the property + name of the property. + + + + + Get propertyinfo + + object which could have property + propertyname on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: http://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + Empty handle when is disabled + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Any operating system. + + + + + Unix/Linux operating systems. + + + + + Windows CE. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Unknown operating system. + + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid asssembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + formatstring. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Apend a int type (byte, int) as string + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Split a string + + + + + Split string with escape. The escape char is the same as the splitchar + + + split char. escaped also with this char + + + + + Split string with escape + + + + + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + cached result as calculating is expensive. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Returns details about current process and thread in a portable manner. + + + + + Initializes static members of the ThreadIDHelper class. + + + + + Gets the singleton instance of PortableThreadIDHelper or + Win32ThreadIDHelper depending on runtime environment. + + The instance. + + + + Gets current process ID. + + + + + Gets current process name. + + + + + Gets current process name (excluding filename extension, if any). + + + + + Helper for dealing with thread-local storage. + + + + + Allocates the data slot for storing thread-local information. + + Allocated slot key. + + + + Gets the data for a slot in thread-local storage. + + Type of the data. + The slot to get data for. + Automatically create the object if it doesn't exist. + + Slot data (will create T if null). + + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Win32-optimized implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Win32-optimized implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets current process ID. + + + + + + Gets current process name. + + + + + + Gets current process name (excluding filename extension, if any). + + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Also render the caller information attributes? (, + , ). + + See https://msdn.microsoft.com/en-us/library/hh534540.aspx + + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Renders all log event's properties and appends them to the specified . + + The to append the rendered data to. + Logging event. + + + + The names of caller information attributes. + https://msdn.microsoft.com/en-us/library/hh534540.aspx + TODO NLog ver. 5 - Remove these properties + + + + + Also render the call attributes? (, + , ). + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the , the second the second the + This string is used in + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Render the layout + + + + + + + Convert the formatting string + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + Initializes a new instance of the class. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + - Silverlight: Value for is always returned. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders an assembly version and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Gets the assembly specified by , or entry assembly otherwise + + Found assembly + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets additional version information. + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with with the base directory. + + + + + + Renders the application base directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source file name. Full callsite + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site (class name, method name and source information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A counter value (increases on each layout rendering). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + Renders the specified counter value and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + Renders the current directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current date and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + Renders the specified environment variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the name of the item. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. See . + + + + + Log event context data with default options. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + Renders the specified exception information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + Renders the contents of the specified file and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Create a new. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the garbage collector. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Global Diagnostics Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified Global Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Globally-unique identifier (GUID). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + Renders a newly generated GUID string and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Thread identity information (name and authentication information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + Renders the specified identity information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + Renders the specified installation parameter and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a , needed for date and number formats + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent and the current configuration. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Marks class as a layout renderer and assigns a name to it. + + This attribute is not required when registering the layout in the API. + + + + Initializes a new instance of the class. + + Name of the layout renderer, without the `${ }` + + + + Format of the ${level} layout renderer output. + + + + + Render the full level name. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Renders the current log level and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes the layout renderer. + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the XML logging event and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Renders the logger name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the date in the long format (yyyy-MM-dd HH:mm:ss.ffff) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The machine name that the process is running on. + + + + + Initializes the layout renderer. + + + + + Renders the machine name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Logical Context item (based on CallContext). + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDLC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + Renders the log message including any positional parameters and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Nested Diagnostic Context item. Provided for compatibility with log4net. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + Renders the specified Nested Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Renderer (Async scope) + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Renders the specified Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + Renders the timing details of the Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A newline literal. + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The directory where NLog.dll is located. + + + + + Initializes static members of the NLogDirLayoutRenderer class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The performance counter. + + + + + Gets or sets the name of the counter category. + + + + + + Gets or sets the name of the performance counter. + + + + + + Gets or sets the name of the performance counter instance (e.g. this.Global_). + + + + + + Gets or sets the name of the machine to read the performance counter from. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the specified environment variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current process. + + + + + Renders the current process ID. + + The to append the rendered data to. + Logging event. + + + + The information about the running process. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Renders the current process name (optionally with a full path). + + The to append the rendered data to. + Logging event. + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders the current process running time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + + + + High precision timer, based on the value returned from QueryPerformanceCounter() optionally converted to seconds. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to normalize the result by subtracting + it from the result of the first call (so that it's effectively zero-based). + + + + + + Gets or sets a value indicating whether to output the difference between the result + of QueryPerformanceCounter and the previous one. + + + + + + Gets or sets a value indicating whether to convert the result to seconds by dividing + by the result of QueryPerformanceFrequency(). + + + + + + Gets or sets the number of decimal digits to be included in output. + + + + + + Gets or sets a value indicating whether to align decimal point (emit non-significant zeros). + + + + + + Initializes the layout renderer. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A value from the Registry. + + + + + Create new renderer + + + + + Gets or sets the registry value name. + + + + + + Gets or sets the value to be output when the specified registry key or value is not found. + + + + + + Require escaping backward slashes in . Need to be backwardscompatible. + + When true: + + `\` in value should be configured as `\\` + `\\` in value should be configured as `\\\\`. + + Default value wasn't a Layout before and needed an escape of the slash + + + + + Gets or sets the registry view (see: https://msdn.microsoft.com/de-de/library/microsoft.win32.registryview.aspx). + Allowed values: Registry32, Registry64, Default + + + + + + Gets or sets the registry key. + + + HKCU\Software\NLogTest + + + Possible keys: +
    +
  • HKEY_LOCAL_MACHINE
  • +
  • HKLM
  • +
  • HKEY_CURRENT_USER
  • +
  • HKCU
  • +
  • HKEY_CLASSES_ROOT
  • +
  • HKEY_USERS
  • +
  • HKEY_CURRENT_CONFIG
  • +
  • HKEY_DYN_DATA
  • +
  • HKEY_PERFORMANCE_DATA
  • +
+
+ +
+ + + Reads the specified registry key and value and appends it to + the passed . + + The to append the rendered data to. + Logging event. Ignored. + + + + Has ? + + + + + Parse key to and subkey. + + full registry key name + Result of parsing, never null. + + + + Aliases for the hives. See https://msdn.microsoft.com/en-us/library/ctb3kd86(v=vs.110).aspx + + + + + The sequence ID + + + + + Renders the current log sequence ID and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current short date string (yyyy-MM-dd) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current thread. + + + + + Renders the current thread identifier and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The name of the current thread. + + + + + Renders the current thread name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The Ticks value of current date and time. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders time in the 24-h format (HH:mm:ss.mmm) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + Renders the current trace activity ID. + + The to append the rendered data to. + Logging event. + + + + Render a NLog variable (xml or config) + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Initializes the layout renderer. + + + + + Try get the + + + + + + + Renders the specified variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Thread Windows identity information (username). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets a value indicating whether username should be included. + + + + + + Renders the current thread windows identity information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply JSON encoding. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + RegistryLayoutRenderer + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Initializes the layout renderer. + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See http://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Trims the whitespace from the result of another layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + Renders the inner message, processes it and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + + Output to be transform. + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply XML encoding. + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Padded and trimmed string. + + + + A layout containing one or more nested layouts. + + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + Initializes the layout. + + + + + Formats the log event relying on inner layouts. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event relying on inner layouts. + + The logging event. + for the result + + + + Closes the layout. + + + + + Generate description of Compound Layout + + Compound Layout String Description + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + If is set, then the header generation with columnnames will be disabled. + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + Initializes the layout. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event for write. + + The logging event. + for the result + + + + Get the headers with the column names. + + + + + + Render 1 columnvalue (text or header) to + + write-to + current col index + col text + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Generate description of CSV Layout + + CSV Layout String Description + + + + Specifies CSV quoting modes. + + + + + Quote all column. + + + + + Quote nothing. + + + + + Quote only whose values contain the quote symbol or + the separator. + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Formats the log event as a JSON document for writing. + + The logging event. + for the result + + + + Formats the log event as a JSON document for writing. + + The log event to be formatted. + A JSON string representation of the log event. + + + + Generate description of JSON Layout + + JSON Layout String Description + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doens't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders the event info in layout. + + The event info. + String representing log event. + + + + Optimized version of for internal Layouts. Works best + when override of is available. + + The event info. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + StringBuilder to help minimize allocations [optional]. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Marks class as a layout renderer and assigns a format string to it. + + + + + Initializes a new instance of the class. + + Layout name. + + + + Parses layout strings. + + + + + Add to + + + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result. + + + + A specialized layout that renders Log4j-compatible XML events. + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Represents a string with embedded placeholders that can render contextual information. + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Returns a that represents the current object. + + + A that represents the current object. + + + + + Initializes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + for the result + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets the logger short name. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Gets the dictionary of per-event context properties. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + The exception. + Instance of . + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Set the + + true = Always, false = Never, null = Auto Detect + + + + Specialized LogFactory that can return instances of custom logger types. + + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the name of the current class and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. After setting this property all + existing loggers will be re-configured, so there is no need to call + manually. + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets the logger with the name of the current class. + + The logger with type . + Type of the logger + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The type of the logger to create. The type must inherit from + The logger of type . + This is a slow-running method. Make sure you are not calling this method in a + loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. Use to pass the type of the needed Logger. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Returns if logging is currently enabled. + + A value of if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this logfactory is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Gets the filter result. + + The filter chain. + The log event. + The result of the filter. + + + + Defines available log levels. + + + + + Trace log level. + + + + + Debug log level. + + + + + Info log level. + + + + + Warn log level. + + + + + Error log level. + + + + + Fatal log level. + + + + + Off log level. + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + + The object object. + + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Delegate used to set/get the culture in use. + + This delegate marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. + + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture to use. + + This property was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The logger class. The class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. Use to pass the type of the needed Logger. + + Name of the logger. + The logger class. The class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + An object that implements IDisposable whose Dispose() method reenables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Checks if logging is currently enabled. + + if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + Base implementation of a log receiver server which forwards received logs through or a given . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log factory. + + + + Processes the log messages. + + The events to process. + + + + Processes the log messages. + + The log events. + + + + Service contract for Log Receiver client. + + This class marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver server. + + + + + Processes the log messages. + + The events. + + + + Service contract for Log Receiver server. + + + + + Processes the log messages. + + The events. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Client of + + + + + Occurs when the log message processing has completed. + + + + + Occurs when Open operation has completed. + + + + + Occurs when Close operation has completed. + + + + + Enables the user to configure client and service credentials as well as service credential authentication settings for use on the client side of communication. + + + + + Gets the underlying implementation. + + + + + Gets the target endpoint for the service to which the WCF client can connect. + + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Closes the client asynchronously. + + User-specific state. + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Instructs the inner channel to display a user interface if one is required to initialize the channel prior to using it. + + + + + Gets or sets the cookie container. + + The cookie container. + + + + Implementation of which forwards received logs through or a given . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log factory. + + + + Implementation of which forwards received logs through or a given . + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log factory. + + + + Internal configuration of Log Receiver Service contracts. + + + + + Wire format for NLog Event. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the client-generated identifier of the event. + + + + + Gets or sets the ordinal of the log level. + + + + + Gets or sets the logger ordinal (index into . + + The logger ordinal. + + + + Gets or sets the time delta (in ticks) between the time of the event and base time. + + + + + Gets or sets the message string index. + + + + + Gets or sets the collection of layout values. + + + + + Gets the collection of indexes into array for each layout value. + + + + + Converts the to . + + The object this is part of.. + The logger name prefix to prepend in front of the logger name. + Converted . + + + + Wire format for NLog event package. + + + + + Gets or sets the name of the client. + + The name of the client. + + + + Gets or sets the base time (UTC ticks) for all events in the package. + + The base time UTC. + + + + Gets or sets the collection of layout names which are shared among all events. + + The layout names. + + + + Gets or sets the collection of logger names. + + The logger names. + + + + Gets or sets the list of events. + + The events. + + + + Converts the events to sequence of objects suitable for routing through NLog. + + The logger name prefix to prepend in front of each logger name. + + Sequence of objects. + + + + + Converts the events to sequence of objects suitable for routing through NLog. + + + Sequence of objects. + + + + + List of strings annotated for more terse serialization. + + + + + Initializes a new instance of the class. + + + + + Log Receiver Client using WCF. + + + This class marked as obsolete before NLog 4.3.11 and it will be removed in a future release. + + It provides an implementation of the legacy interface and it will be completely obsolete when the + ILogReceiverClient is removed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Log Receiver Client facade. It allows the use either of the one way or two way + service contract using WCF through its unified interface. + + + Delegating methods are generated with Resharper. + 1. change ProxiedClient to private field (instead of public property) + 2. delegate members + 3. change ProxiedClient back to public property. + + + + + + The client getting proxied + + + + + Do we use one-way or two-way messaging? + + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + The binding. + The remote address. + + + + Causes a communication object to transition immediately from its current state into the closed state. + + + + + Begins an asynchronous operation to close a communication object. + + + The that references the asynchronous close operation. + + The delegate that receives notification of the completion of the asynchronous close operation.An object, specified by the application, that contains state information associated with the asynchronous close operation. was called on an object in the state.The default timeout elapsed before the was able to close gracefully. + + + + Begins an asynchronous operation to close a communication object with a specified timeout. + + + The that references the asynchronous close operation. + + The that specifies how long the send operation has to complete before timing out.The delegate that receives notification of the completion of the asynchronous close operation.An object, specified by the application, that contains state information associated with the asynchronous close operation. was called on an object in the state.The specified timeout elapsed before the was able to close gracefully. + + + + Begins an asynchronous operation to open a communication object. + + + The that references the asynchronous open operation. + + The delegate that receives notification of the completion of the asynchronous open operation.An object, specified by the application, that contains state information associated with the asynchronous open operation.The was unable to be opened and has entered the state.The default open timeout elapsed before the was able to enter the state and has entered the state. + + + + Begins an asynchronous operation to open a communication object within a specified interval of time. + + + The that references the asynchronous open operation. + + The that specifies how long the send operation has to complete before timing out.The delegate that receives notification of the completion of the asynchronous open operation.An object, specified by the application, that contains state information associated with the asynchronous open operation.The was unable to be opened and has entered the state.The specified timeout elapsed before the was able to enter the state and has entered the state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Enables the user to configure client and service credentials as well as service credential authentication settings for use on the client side of communication. + + + + + Causes a communication object to transition from its current state into the closed state. + + The that specifies how long the send operation has to complete before timing out. was called on an object in the state.The timeout elapsed before the was able to close gracefully. + + + + Causes a communication object to transition from its current state into the closed state. + + was called on an object in the state.The default close timeout elapsed before the was able to close gracefully. + + + + Closes the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Occurs when Close operation has completed. + + + + + Occurs when the communication object completes its transition from the closing state into the closed state. + + + + + Occurs when the communication object first enters the closing state. + + + + + Instructs the inner channel to display a user interface if one is required to initialize the channel prior to using it. + + + + + Gets or sets the cookie container. + + The cookie container. + + + + Completes an asynchronous operation to close a communication object. + + The that is returned by a call to the method. was called on an object in the state.The timeout elapsed before the was able to close gracefully. + + + + Completes an asynchronous operation to open a communication object. + + The that is returned by a call to the method.The was unable to be opened and has entered the state.The timeout elapsed before the was able to enter the state and has entered the state. + + + + Gets the target endpoint for the service to which the WCF client can connect. + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Occurs when the communication object first enters the faulted state. + + + + + Gets the underlying implementation. + + + + + Causes a communication object to transition from the created state into the opened state. + + The was unable to be opened and has entered the state.The default open timeout elapsed before the was able to enter the state and has entered the state. + + + + Causes a communication object to transition from the created state into the opened state within a specified interval of time. + + The that specifies how long the send operation has to complete before timing out.The was unable to be opened and has entered the state.The specified timeout elapsed before the was able to enter the state and has entered the state. + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Occurs when Open operation has completed. + + + + + Occurs when the communication object completes its transition from the opening state into the opened state. + + + + + Occurs when the communication object first enters the opening state. + + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Occurs when the log message processing has completed. + + + + + Gets the current state of the communication-oriented object. + + + The value of the of the object. + + + + + Causes a communication object to transition from its current state into the closed state. + + + + + Abstract base class for the WcfLogReceiverXXXWay classes. It can only be + used internally (see internal constructor). It passes off any Channel usage + to the inheriting class. + + Type of the WCF service. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Occurs when the log message processing has completed. + + + + + Occurs when Open operation has completed. + + + + + Occurs when Close operation has completed. + + + + + Gets or sets the cookie container. + + The cookie container. + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Closes the client asynchronously. + + User-specific state. + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Log Receiver Client using WCF. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Log Receiver Client using WCF. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + Mostly for compatibility with log4net. + + + + + + + + + + Gets the thread-local dictionary + + Must be true for any subsequent dictionary modification operation + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + + + + + + Simulate ImmutableDictionary behavior (which is not yet part of all .NET frameworks). + In future the real ImmutableDictionary could be used here to minimize memory usage and copying time. + + Must be true for any subsequent dictionary modification operation + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Mapped Diagnostics Context - used for log4net compatibility. + + This class marked as obsolete before NLog 2.0 and it may be removed in a future release. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified item exists in current thread MDC. + + + + Removes the specified item from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + + + + + + A mesage template + + + + The original template string. + This is the key passed to structured targets. + + + The list of literal parts, useful for string rendering. + It indicates the number of characters from the original string to print, + then there's a hole with how many chars to skip. + + "Hello {firstName} {lastName}!" + ------------------------------------- + â•‘P |S â•‘P|S â•‘P|Sâ•‘ + â•‘6 |11 â•‘1|10 â•‘1|0â•‘ + â•‘Hello |{firstName}â•‘ |{lastName}â•‘!â•‘ + + "{x} * 2 = {2x}" + -------------------- + â•‘P|S â•‘P |S â•‘ + â•‘0|3 â•‘7 |4 â•‘ + â•‘{x}â•‘ * 2 = |{2x}â•‘ + + The tricky part is escaped braces. They are represented by a skip = 0, + which is interpreted as "move one char forward, no hole". + + "Escaped }} is fun." + ---------------------- + â•‘P |Sâ•‘P |Sâ•‘ + â•‘9 |0â•‘8 |0â•‘ + â•‘Escaped }|}â•‘ is fun.|â•‘ + + + + This list of holes. It's used both to fill the string rendering + and to send values along the template to structured targets. + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Create a template, which is already parsed + + + + + + + + + Create a template, which is already parsed + + + + + + + + This is for testing only: recreates from the parsed data. + + + + This is for testing only: rebuilds the hole + + Add to this string builder + ref for performance + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Render templates + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + Do not fallback to StringBuilder.Format for positional templates. + The String Builder destination. + Parameters for the holes. + + + + Render a template to a string. + + The template. + The String Builder destination. + Culture. + Parameters for the holes. + Rendered template, never null. + + + + Convert Render or serialize a value, with optionnally backwardscompatible with + + + + Singleton + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serialising a scalar (string, int, NULL) or simple type (IFormattable) + + + + + + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + formatstring of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Nested Diagnostics Context - for log4net compatibility. + + This class marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top object off the NDC stack. The object is removed from the stack. + + The top object from the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all objects on the NDC stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + Mostly for compatibility with log4net. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Resets the stack to the original count during . + + + + + Initializes a new instance of the class. + + The stack. + The previous count. + + + + Reverts the stack to original item count. + + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwardscompatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the current scope, and returns its start time + + Scope Creation Time + + + + Peeks the first scope, and returns its start time + + Scope Creation Time + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + Override this to create the actual logging task + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Schedules the LogEventInfo for async writing + + The log event. + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation betweewn task-completion and timeout + + + + Creates new task to handle the writing of the input + + LogEvent to write + New Task created [true / false] + + + + Handles that scheduled task has completed (succesfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Writes log messages to the console with customizable coloring. + + Documentation on NLog Wiki + + + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified log event to the console highlighting entries + and words based on a set of defined rules. + + Log event. + + + + Color pair (foreground and background). + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the Console.Out or + Console.Error depending on the value of the Error flag. + + The logging event. + + Note that the Error option is not supported on .NET Compact Framework. + + + + + Write to output + + text to be written. + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + Access this property will compile the Regex. + + + + Get regex options. + + Default option to start with. + + + + + Get Expression for a . + + + + + + Replace regex result + + + + + + + Information about database command + parameters. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the type of the command. + + The type of the command. + + + + + Gets or sets the connection string to run the command against. If not provided, connection string from the target is used. + + + + + + Gets or sets the command text. + + + + + + Gets or sets a value indicating whether to ignore failures. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Represents a parameter to a Database target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the parameter. + The parameter layout. + + + + Gets or sets the database parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Gets or sets the database parameter size. + + + + + + Gets or sets the database parameter precision. + + + + + + Gets or sets the database parameter scale. + + + + + + Writes log messages to the database using an ADO.NET provider. + + + - NETSTANDARD cannot load connectionstrings from .config + + Documentation on NLog Wiki + + + The configuration is dependent on the database type, because + there are differnet methods of specifying connection string, SQL + command and command parameters. + + MS SQL Server using System.Data.SqlClient: + + Oracle using System.Data.OracleClient: + + Oracle using System.Data.OleDBClient: + + To set up the log target programmatically use code like this (an equivalent of MSSQL configuration): + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the name of the database provider. + + + + The parameter name should be a provider invariant name as registered in machine.config or app.config. Common values are: + +
    +
  • System.Data.SqlClient - SQL Sever Client
  • +
  • System.Data.SqlServerCe.3.5 - SQL Sever Compact 3.5
  • +
  • System.Data.OracleClient - Oracle Client from Microsoft (deprecated in .NET Framework 4)
  • +
  • Oracle.DataAccess.Client - ODP.NET provider from Oracle
  • +
  • System.Data.SQLite - System.Data.SQLite driver for SQLite
  • +
  • Npgsql - Npgsql driver for PostgreSQL
  • +
  • MySql.Data.MySqlClient - MySQL Connector/Net
  • +
+ (Note that provider invariant names are not supported on .NET Compact Framework). + + Alternatively the parameter value can be be a fully qualified name of the provider + connection type (class implementing ) or one of the following tokens: + +
    +
  • sqlserver, mssql, microsoft or msde - SQL Server Data Provider
  • +
  • oledb - OLEDB Data Provider
  • +
  • odbc - ODBC Data Provider
  • +
+
+ +
+ + + Gets or sets the name of the connection string (as specified in <connectionStrings> configuration section. + + + + + + Gets or sets the connection string. When provided, it overrides the values + specified in DBHost, DBUserName, DBPassword, DBDatabase. + + + + + + Gets or sets the connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. + + + + + + Gets the installation DDL commands. + + + + + + Gets the uninstallation DDL commands. + + + + + + Gets or sets a value indicating whether to keep the + database connection open between the log events. + + + + + + Obsolete - value will be ignored! The logging code always runs outside of transaction. + + Gets or sets a value indicating whether to use database transactions. + Some data providers require this. + + + + This option was removed in NLog 4.0 because the logging code always runs outside of transaction. + This ensures that the log gets written to the database if you rollback the main transaction because of an error and want to log the error. + + + + + Gets or sets the database host name. If the ConnectionString is not provided + this value will be used to construct the "Server=" part of the + connection string. + + + + + + Gets or sets the database user name. If the ConnectionString is not provided + this value will be used to construct the "User ID=" part of the + connection string. + + + + + + Gets or sets the database password. If the ConnectionString is not provided + this value will be used to construct the "Password=" part of the + connection string. + + + + + + Gets or sets the database name. If the ConnectionString is not provided + this value will be used to construct the "Database=" part of the + connection string. + + + + + + Gets or sets the text of the SQL command to be run on each log level. + + + Typically this is a SQL INSERT statement or a stored procedure call. + It should use the database-specific parameters (marked as @parameter + for SQL server or :parameter for Oracle, other data providers + have their own notation) and not the layout renderers, + because the latter is prone to SQL injection attacks. + The layout renderers should be specified as <parameter /> elements instead. + + + + + + Gets or sets the type of the SQL command to be run on each log level. + + + This specifies how the command text is interpreted, as "Text" (default) or as "StoredProcedure". + When using the value StoredProcedure, the commandText-property would + normally be the name of the stored procedure. TableDirect method is not supported in this context. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Set the to use it for opening connections to the database. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the database. It creates + a new database command, prepares parameters for it by calculating + layouts and executes the command. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Build the connectionstring from the properties. + + + Using at first, and falls back to the properties , + , and + + Event to render the layout inside the properties. + + + + + Adds the given list of DatabaseParameterInfo to the given IDbCommand after transforming them into IDbDataParameters. + + The IDbCommand to add parameters to + The list of DatabaseParameterInfo to transform into IDbDataParameters and to add to the IDbCommand + The log event to base the parameter's layout rendering on. + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the attached debugger. + + The logging event. + + + + Mock target - useful for testing. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + Increases the number of messages. + + The logging event. + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialisation options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized succesfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ascii characters be encoded + JSON escaped string + + + + Get properties, cached for a type + + + + + + + Writes log message to the Event Log. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the name of the machine on which Event Log service is running. + + + + + + Gets or sets the layout that renders event ID. + + + + + + Gets or sets the layout that renders event Category. + + + + + + Optional entrytype. When not set, or when not convertable to then determined by + + + + + + Gets or sets the value to be used as the event Source. + + + By default this is the friendly name of the current AppDomain. + + + + + + Gets or sets the name of the Event Log to write to. This can be System, Application or + any user-defined name. + + + + + + Gets or sets the message length limit to write to the Event Log. + + MaxMessageLength cannot be zero or negative + + + + + Gets or sets the maximum Event log size in kilobytes. + + If null, the value won't be set. + + Default is 512 Kilobytes as specified by Eventlog API + + MaxKilobytes cannot be less than 64 or greater than 4194240 or not a multiple of 64. If null, use the default value + + + + + Gets or sets the action to take if the message is larger than the option. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Initializes the target. + + + + + Writes the specified logging event to the event log. + + The logging event. + + + + Get the entry type for logging the message. + + The logging event - for rendering the + + + + + Get the source, if and only if the source is fixed. + + null when not + Internal for unit tests + + + + Get the eventlog to write to. + + Event if the source needs to be rendered. + + + + + (re-)create a event source, if it isn't there. Works only with fixed sourcenames. + + sourcenaam. If source is not fixed (see , then pass null or emptystring. + always throw an Exception when there is an error + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The begging position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. When the number of archive files exceed the obsolete archives are deleted. + + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + + When the number of archive files exceed the obsolete archives are deleted. + + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. When the number of archive files + exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Determine if old archive files should be deleted. + + Maximum number of archive files that should be kept + when old archives should be deleted; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the + highest number. When the number of archive files exceed the obsolete + archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + Documentation on NLog Wiki + + + + Default clean up period of the initilized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + The maximum number of initialised files before clean up procedures are initiated, + to keep the number of initialised files to a minimum. Chose 25 to cater for monthly rolling of log-files. + + + + + This value disables file archiving based on the size. + + + + + Holds the initialised files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialised files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + Setting this property to True helps improve performance. + + + + + + Gets or sets the maximum number of log filenames that should be stored as existing. + + + The bigger this number is the longer it will take to write each log record. The smaller the number is + the higher the chance that the clean function will be run when no new files have been opened. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. If this number is negative the files are + not automatically closed after a period of inactivity. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. If this number is negative or zero + the files are not flushed by timer. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. + Choose: + + + Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. +

+ Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. +

+
+ +
+ + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicationg whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Returns estimated size for memory stream, based on events count and first event size in bytes. + + Count of events + Bytes count of first event + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occuring day of the week to return a DateTime for. + The DateTime of the next occuring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + Filename to archive. If null, then nothing to archive. + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialise a file to be used by the instance. Based on the number of initialised + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Invokes the archiving and clean up of older archive file based on the values of and properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formating and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Interface for serialization of values, maybe even objects to JSON format. + Useful for wrappers for existing serializers. + + + + + Returns a serialization of an object + into JSON format. + + The object to serialize to JSON. + Serialized value (null = Serialize failed). + + + + Options for JSON serialisation + + + + + Add quotes arround object keys? + + + + + Formatprovider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + Initializes a new instance of the class. + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms + and data structures like a hash table. + + + + + Determines whether the specified is + equal to this instance. + + The to compare with + this instance. + + Value of true if the specified + is equal to this instance; otherwise, false. + + + The parameter is null. + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + + true if this converter can perform the conversion; otherwise, false. + + An that provides a format context. A that represents the type you want to convert from. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + + An that represents the converted value. + + An that provides a format context. The to use as the current culture. The to convert. The conversion cannot be performed. + + + + Sends log messages to a NLog Receiver Service (using WCF or Web Services). + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the endpoint address. + + The endpoint address. + + + + + Gets or sets the name of the endpoint configuration in WCF configuration file. + + The name of the endpoint configuration. + + + + + Gets or sets a value indicating whether to use binary message encoding. + + + + + + Gets or sets a value indicating whether to use a WCF service contract that is one way (fire and forget) or two way (request-reply) + + + + + + Gets or sets the client ID. + + The client ID. + + + + + Gets the list of parameters. + + The parameters. + + + + + Gets or sets a value indicating whether to include per-event properties in the payload sent to the server. + + + + + + Called when log events are being sent (test hook). + + The events. + The async continuations. + True if events should be sent, false to stop processing them. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Append" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Add value to the , returns ordinal in + + + lookup so only unique items will be added to + value to add + + + + + Creating a new instance of WcfLogReceiverClient + + Inheritors can override this method and provide their own + service configuration - binding and endpoint address + + This method marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creating a new instance of IWcfLogReceiverClient + + Inheritors can override this method and provide their own + service configuration - binding and endpoint address + + + virtual is used by endusers + + + + Sends log messages by email using SMTP protocol. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets the mailSettings/smtp configuration from app.config in cases when we need those configuration. + E.g when UseSystemNetMailSettings is enabled and we need to read the From attribute from system.net/mailSettings/smtp + + Internal for mocking + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinit waiting + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Renders an array logging events. + + Array of logging events. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mailmessage + + event for rendering layouts + string to group on + + + + Append rendered layout to the stringbuilder + + append to this + event for rendering + append if not null + + + + Create the mailmessage with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to an ArrayList in memory for programmatic retrieval. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + Initializes the target. + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will be very slow. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6) (not supported on Windows Phone 7.0)
  • +
  • tcp4://host:port - force TCP/IPv4 (not supported on Windows Phone 7.0)
  • +
  • tcp6://host:port - force TCP/IPv6 (not supported on Windows Phone 7.0)
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6, not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp4://host:port - force UDP/IPv4 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp6://host:port - force UDP/IPv6 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). + + + + + + Gets or sets the maximum current connections. 0 = no maximum. + + + + + + Gets or sets the action that should be taken if the will be more connections than . + + + + + + Gets or sets the maximum queue size. + + + + + + Gets or sets the action that should be taken if the message is larger than + maxMessageSize. + + + + + + Gets or sets the encoding to be used. + + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + The action to be taken when there are more connections then the max. + + + + + Just allow it. + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. + + + + + Discard the entire message. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Sends log messages to the remote instance of NLog Viewer. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include stack contents. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Outputs log messages through the OutputDebugString() Win32 API. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Outputs the rendered logging event through the OutputDebugString() Win32 API. + + The logging event. + + + + Increments specified performance counter on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+ + TODO: + 1. Unable to create a category allowing multiple counter instances (.Net 2.0 API only, probably) + 2. Is there any way of adding new counters without deleting the whole category? + 3. There should be some mechanism of resetting the counter (e.g every day starts from 0), or auto-switching to + another counter instance (with dynamic creation of new instance). This could be done with layouts. + +
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether performance counter should be automatically created. + + + + + + Gets or sets the name of the performance counter category. + + + + + + Gets or sets the name of the performance counter. + + + + + + Gets or sets the performance counter instance name. + + + + + + Gets or sets the counter help text. + + + + + + Gets or sets the performance counter type. + + + + + + The value by which to increment the counter. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Increments the configured performance counter. + + Log event. + + + + Closes the target and releases any unmanaged resources. + + + + + Ensures that the performance counter has been initialized. + + True if the performance counter is operational, false otherwise. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Can be used if has been enabled. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Closes the target and releases any unmanaged resources. + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + NOTE! Obsolete, instead override WriteAsyncThreadSafe(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target, in a thread safe manner. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the event info in layout. + + The layout. + The event info. + String representing log event. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Marks class as a logging target and assigns a name to it. + + This attribute is not required when registering the target in the API. + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + Represents target that supports context capture using MDLC, MDC, NDLC and NDC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of MDC context + + + Internal Layout that allows capture of NDC context + + + Internal Layout that allows capture of MDLC context + + + Internal Layout that allows capture of NDLC context + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the layout used to format log messages. + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the text to be rendered. + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Always use independent of + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + + + Write from input to output. Fix the UTF-8 bom + + + + + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued (-1 means everything). + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides asynchronous, buffered execution of target writes. + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queueing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the limit of full s to write before yielding into + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent statisfies the . + If condition isn't set, flushes on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes the target. + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The aciton to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target. + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Writes logging event to the log target. + + Logging event to be written out. + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + The method remembers the last-known-successful target + and starts the iteration from it. + If is set, the method + resets the target to the first target + stored in . + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + Impersonates another user for the duration of the write. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Gets or sets username to change context to. + + + + + + Gets or sets the user account password. + + + + + + Gets or sets Windows domain name to change context to. + + + + + + Gets or sets the Logon Type. + + + + + + Gets or sets the type of the logon provider. + + + + + + Gets or sets the required impersonation level. + + + + + + Gets or sets a value indicating whether to revert to the credentials of the process instead of impersonating another user. + + + + + + Initializes the impersonation context. + + + + + Closes the impersonation context. + + + + + Changes the security context, forwards the call to the .Write() + and switches the context back to original. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Changes the security context, forwards the call to the .Write() + and switches the context back to original. + + Log events. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Helper class which reverts the given + to its original value as part of . + + + + + Initializes a new instance of the class. + + The windows impersonation context. + + + + Reverts the impersonation context. + + + + + Limits the number of messages written per timespan to the wrapped target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the DateTime when the current will be reset. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Logon provider. + + + + + Use the standard logon provider for the system. + + + The default security provider is negotiate, unless you pass NULL for the domain name and the user name + is not in UPN format. In this case, the default provider is NTLM. + NOTE: Windows 2000/NT: The default security provider is NTLM. + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Sends log messages to a randomly selected target. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Impersonation level. + + + + + Anonymous Level. + + + + + Identification Level. + + + + + Impersonation Level. + + + + + Delegation Level. + + + + + Logon type. + + + + + Interactive Logon. + + + This logon type is intended for users who will be interactively using the computer, such as a user being logged on + by a terminal server, remote shell, or similar process. + This logon type has the additional expense of caching logon information for disconnected operations; + therefore, it is inappropriate for some client/server applications, + such as a mail server. + + + + + Network Logon. + + + This logon type is intended for high performance servers to authenticate plaintext passwords. + The LogonUser function does not cache credentials for this logon type. + + + + + Batch Logon. + + + This logon type is intended for batch servers, where processes may be executing on behalf of a user without + their direct intervention. This type is also for higher performance servers that process many plaintext + authentication attempts at a time, such as mail or Web servers. + The LogonUser function does not cache credentials for this logon type. + + + + + Logon as a Service. + + + Indicates a service-type logon. The account provided must have the service privilege enabled. + + + + + Network Clear Text Logon. + + + This logon type preserves the name and password in the authentication package, which allows the server to make + connections to other network servers while impersonating the client. A server can accept plaintext credentials + from a client, call LogonUser, verify that the user can access the system across the network, and still + communicate with other servers. + NOTE: Windows NT: This value is not supported. + + + + + New Network Credentials. + + + This logon type allows the caller to clone its current token and specify new credentials for outbound connections. + The new logon session has the same local identifier but uses different credentials for other network connections. + NOTE: This logon type is supported only by the LOGON32_PROVIDER_WINNT50 logon provider. + NOTE: Windows NT: This value is not supported. + + + + + Writes log events to all targets. + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the time source. + +
+
diff --git a/MTC_Adapter/packages/NLog.4.5.11/lib/netstandard1.3/NLog.xml b/MTC_Adapter/packages/NLog.4.5.11/lib/netstandard1.3/NLog.xml new file mode 100644 index 0000000..fbd812c --- /dev/null +++ b/MTC_Adapter/packages/NLog.4.5.11/lib/netstandard1.3/NLog.xml @@ -0,0 +1,23386 @@ + + + + NLog + + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + internal class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + internal class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + internal class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + internal class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without wating) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + A value of true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + String Conversion Helpers + + + + + Converts input string value into + + Input value + Output value + Default value + Returns failure if the input value could not be parsed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + NLog internal logger. + + Writes to file, console or custom textwriter (see ) + + + Don't use as that can lead to recursive calls - stackoverflows + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Initializes static members of the InternalLogger class. + + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled. + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the number of items in the array. + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Base class for representing nodes in condition expression trees. + + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + Returns a string representation of this expression. + + String literal in single quotes. + + + + Evaluates the expression by calculating the value + of the layout in the specified evaluation context. + + Evaluation context. + The value of the layout. + + + + Condition level expression (represented by the level keyword). + + + + + Returns a string representation of the expression. + + The 'level' string. + + + + Evaluates to the current log level. + + Evaluation context. Ignored. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + Returns a string representation of the expression. + + The literal value. + + + + Evaluates the expression. + + Evaluation context. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + Returns a string representation of this expression. + + A logger string. + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + Returns a string representation of this expression. + + The 'message' string. + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters. + + The method parameters. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Marks the class as containing condition methods. + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparision, e.g. parse a string to int. + + + + + + + Promoto to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparision. + + + index, 0 to maxint. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properies are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + New event args + + + + + + The assembly that is trying to load. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwardscomp. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Legacy interface, no longer used by the NLog engine + + + + + Gets or sets the JSON serializer to use with or + + + + + Gets or sets the string serializer to use with + + + + + Perform mesage template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in NLog.Extended.dll using late-bound types, so that we don't need a reference to NLog.Extended.dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Format of the excpetion output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + Registers a single type definition. + + The item name. + The type of the item. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Creates an item instance. + + The name of the item. + Created item. + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during installation/uninstallations. + + Log event info object. + + + + Keeps logging configuration and provides simple API + to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Variables defined in xml or in API. name is case case insensitive. + + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete on NLog 4.1 and it may be removed in a future release. + + + + Gets the variables defined in the configuration. + + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Compare objects based on their name. + + This property is use to cache the comparer object. + + + + Defines methods to support the comparison of objects for equality based on their name. + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for alle loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Flushes any pending log messages on all appenders. + + The asynchronous continuation. + + + + Validates the configuration. + + + + + Copies all variables from provided dictionary into current configuration variables. + + Master variables dictionary + + + + Replace a simple variable with a value. The orginal value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the new configuration + + The new configuration. + + + + Gets the old configuration + + The old configuration. + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or see cref="EnableLoggingForLevels"/> to enable logging. + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Target to be written to when the rule matches. + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + + Gets or sets logger name pattern. + + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends but not anywhere else. + + + + + Gets the collection of log levels enabled by this rule. + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to de disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + >Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + A that represents the current . + + + + + Checks whether te particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Factory for locating methods. + + The type of the class marker attribute. + The type of the method marker attribute. + + + + Gets a collection of all registered items in the factory. + + + Sequence of key/value pairs where each key represents the name + of the item and value is the of + the item. + + + + + Scans the assembly for classes marked with + and methods marked with and adds them + to the factory. + + The types to scan. + The prefix to use for names. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a simple name to an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The name of the item. + + + + Gets the name of the item. + + The name of the item. + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The input URI. + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Prevents a default instance of the class from being created. + + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Last error occured during configuration read + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Gets the required attribute. + + Name of the attribute. + Attribute value. + Throws if the attribute is not specified. + + + + Gets the optional boolean attribute value. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional boolean attribute value. If whitespace, then returning null. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional attribute value. + + Name of the attribute. + The default value. + Value of the attribute or default value. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Returns all parsing errors from current and all child elements. + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + Stack trace should not be captured. + + + + + Stack trace should be captured without source-level information. + + + + + Stack trace should be captured including source-level information such as line numbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + If set to true errors will be ignored during file processing. + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Remove all spaces, also in between text. + + text + text without spaces + Tabs and other whitespace is not removed! + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Checks whether any error during XML configuration parsing has occured. + If there are any and ThrowConfigExceptions or ThrowExceptions + setting is enabled - throws NLogConfigurationException, otherwise + just write an internal log at Warn level. + + Root NLog configuration xml element + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + Rules are added to this parameter. + + + + Split list on comma, trim items + + + no empty items + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language + described here. + + + + + Gets or sets the condition expression. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Can be used if has been enabled. + + + + + Constructor + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Global Diagnostics Context - used for log4net compatibility. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Include context properties + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Extensions for NLog . + + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Helpers for . + + + + + Load from url + + name without .dll + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Provides untyped IDictionary interface on top of generic IDictionary. + + The type of the key. + The type of the value. + + + + Initializes a new instance of the DictionaryAdapter class. + + The implementation. + + + + Gets an object containing the values in the object. + + + + An object containing the values in the object. + + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + + Gets an object containing the keys of the object. + + + + An object containing the keys of the object. + + + + + Gets or sets the with the specified key. + + Dictionary key. + Value corresponding to key or null if not found + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + + Removes all elements from the object. + + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + True if the contains an element with the key; otherwise, false. + + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Wrapper IDictionaryEnumerator. + + + + + Initializes a new instance of the class. + + The wrapped. + + + + Gets both the key and the value of the current dictionary entry. + + + + A containing both the key and the value of the current dictionary entry. + + + + + Gets the key of the current dictionary entry. + + + + The key of the current element of the enumeration. + + + + + Gets the value of the current dictionary entry. + + + + The value of the current element of the enumeration. + + + + + Gets the current element in the collection. + + + + The current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + + True if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Object construction helper. + + + + Initializes a new instance of the class. + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Interface for fakeable the current . Not fully implemented, please methods/properties as necessary. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appeander is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Closes this instance of the appender. + + + + + Flushes this current appender. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Factory class which creates objects. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialisation as it is an + intenal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + Thrown when is called on an Empty instance. + + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialised before the supplied time. + + The time which prior the appenders considered expired + + + + Fluch all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + An immutable object that stores basic file info. + + + + + Constructs a FileCharacteristics object. + + The time the file was created in UTC. + The time the file was last written to in UTC. + The size of the file in bytes. + + + + The time the file was created in UTC. + + + + + The time the file was last written to in UTC. + + + + + The size of the file in bytes. + + + + + Optimized routines to get the basic file characteristics of the specified file. + + + + + Initializes static members of the FileCharacteristicsHelper class. + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid filenames char array to avoid memory allocation everytime Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Format a log message + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Render the event info as parse as short + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as int + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as bool + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Logger configuration. + + + + + Initializes a new instance of the class. + + The targets by level. + Use the old exception log handling of NLog 3.0? + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete before NLog 4.3.11 and it will be removed in NLog 5. + + + + Gets targets for the specified level. + + The level. + Chain of targets with attached filters. + + + + Determines whether the specified level is enabled. + + The level. + + A value of true if the specified level is enabled; otherwise, false. + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes a continuation. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Performs sender-specific initialization. + + + + + Performs sender-specific close operation. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Parses the URI into an endpoint address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + Creates a new instance of the network sender based on a network URL:. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + /// + A newly created network sender. + + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Sends the specified text over the connected socket. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The address family. + Type of the socket. + Type of the protocol. + Implementation of to use. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Sends the specified text as a UDP datagram. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is a desktop version of Windows. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Portable implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Is this a property of the message? + + + + + + + Value of the property + Is this a property of the message? + + + + The properties of the logEvent + + + + + The properties extracted from the message + + + + + Injects the list of message-template-parameter into the IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The initially empty dictionary + Message-template-parameters was inserted into dictionary without trouble (true/false) + + + + Attempt to override the existing dictionary values using the message-template-parameters + + Message-template-parameters + The already filled dictionary + List of unique message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Is the property of array-type? + + Type which has the property + name of the property. + + + + + Get propertyinfo + + object which could have property + propertyname on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: http://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + Empty handle when is disabled + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Any operating system. + + + + + Unix/Linux operating systems. + + + + + Windows CE. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Unknown operating system. + + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid asssembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + formatstring. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Apend a int type (byte, int) as string + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Split a string + + + + + Split string with escape. The escape char is the same as the splitchar + + + split char. escaped also with this char + + + + + Split string with escape + + + + + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + cached result as calculating is expensive. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Helper for dealing with thread-local storage. + + + + + Allocates the data slot for storing thread-local information. + + Allocated slot key. + + + + Gets the data for a slot in thread-local storage. + + Type of the data. + The slot to get data for. + Automatically create the object if it doesn't exist. + + Slot data (will create T if null). + + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Also render the caller information attributes? (, + , ). + + See https://msdn.microsoft.com/en-us/library/hh534540.aspx + + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Renders all log event's properties and appends them to the specified . + + The to append the rendered data to. + Logging event. + + + + The names of caller information attributes. + https://msdn.microsoft.com/en-us/library/hh534540.aspx + TODO NLog ver. 5 - Remove these properties + + + + + Also render the call attributes? (, + , ). + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the , the second the second the + This string is used in + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Render the layout + + + + + + + Convert the formatting string + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + Initializes a new instance of the class. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + - Silverlight: Value for is always returned. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders an assembly version and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets additional version information. + + + + + The current application domain's base directory. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with with the base directory. + + + + + + Renders the application base directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source file name. Full callsite + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site (class name, method name and source information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A counter value (increases on each layout rendering). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + Renders the specified counter value and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + Renders the current directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current date and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + Renders the specified environment variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the name of the item. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. See . + + + + + Log event context data with default options. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + Renders the specified exception information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + + + Find name of method on stracktrace. + + Full stracktrace + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + Renders the contents of the specified file and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Create a new. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the garbage collector. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Global Diagnostics Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified Global Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Globally-unique identifier (GUID). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + Renders a newly generated GUID string and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + Renders the specified installation parameter and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a , needed for date and number formats + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent and the current configuration. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Marks class as a layout renderer and assigns a name to it. + + This attribute is not required when registering the layout in the API. + + + + Initializes a new instance of the class. + + Name of the layout renderer, without the `${ }` + + + + Format of the ${level} layout renderer output. + + + + + Render the full level name. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Renders the current log level and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes the layout renderer. + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the XML logging event and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Renders the logger name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the date in the long format (yyyy-MM-dd HH:mm:ss.ffff) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The machine name that the process is running on. + + + + + Initializes the layout renderer. + + + + + Renders the machine name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Logical Context item (based on CallContext). + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDLC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + Renders the log message including any positional parameters and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Nested Diagnostic Context item. Provided for compatibility with log4net. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + Renders the specified Nested Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Renderer (Async scope) + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Renders the specified Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + Renders the timing details of the Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A newline literal. + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders the current process running time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + + + + The sequence ID + + + + + Renders the current log sequence ID and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current short date string (yyyy-MM-dd) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current thread. + + + + + Renders the current thread identifier and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The name of the current thread. + + + + + Renders the current thread name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The Ticks value of current date and time. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders time in the 24-h format (HH:mm:ss.mmm) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render a NLog variable (xml or config) + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Initializes the layout renderer. + + + + + Try get the + + + + + + + Renders the specified variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply JSON encoding. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + RegistryLayoutRenderer + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Initializes the layout renderer. + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See http://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Trims the whitespace from the result of another layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + Renders the inner message, processes it and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + + Output to be transform. + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply XML encoding. + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Padded and trimmed string. + + + + A layout containing one or more nested layouts. + + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + Initializes the layout. + + + + + Formats the log event relying on inner layouts. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event relying on inner layouts. + + The logging event. + for the result + + + + Closes the layout. + + + + + Generate description of Compound Layout + + Compound Layout String Description + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + If is set, then the header generation with columnnames will be disabled. + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + Initializes the layout. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event for write. + + The logging event. + for the result + + + + Get the headers with the column names. + + + + + + Render 1 columnvalue (text or header) to + + write-to + current col index + col text + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Generate description of CSV Layout + + CSV Layout String Description + + + + Specifies CSV quoting modes. + + + + + Quote all column. + + + + + Quote nothing. + + + + + Quote only whose values contain the quote symbol or + the separator. + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Formats the log event as a JSON document for writing. + + The logging event. + for the result + + + + Formats the log event as a JSON document for writing. + + The log event to be formatted. + A JSON string representation of the log event. + + + + Generate description of JSON Layout + + JSON Layout String Description + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doens't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders the event info in layout. + + The event info. + String representing log event. + + + + Optimized version of for internal Layouts. Works best + when override of is available. + + The event info. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + StringBuilder to help minimize allocations [optional]. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Marks class as a layout renderer and assigns a format string to it. + + + + + Initializes a new instance of the class. + + Layout name. + + + + Parses layout strings. + + + + + Add to + + + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result. + + + + A specialized layout that renders Log4j-compatible XML events. + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Represents a string with embedded placeholders that can render contextual information. + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Returns a that represents the current object. + + + A that represents the current object. + + + + + Initializes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + for the result + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets the logger short name. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Gets the dictionary of per-event context properties. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + The exception. + Instance of . + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Set the + + true = Always, false = Never, null = Auto Detect + + + + Specialized LogFactory that can return instances of custom logger types. + + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the name of the current class and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. After setting this property all + existing loggers will be re-configured, so there is no need to call + manually. + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets the logger with the name of the current class. + + The logger with type . + Type of the logger + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The type of the logger to create. The type must inherit from + The logger of type . + This is a slow-running method. Make sure you are not calling this method in a + loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. Use to pass the type of the needed Logger. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Returns if logging is currently enabled. + + A value of if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Currently this logfactory is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Gets the filter result. + + The filter chain. + The log event. + The result of the filter. + + + + Defines available log levels. + + + + + Trace log level. + + + + + Debug log level. + + + + + Info log level. + + + + + Warn log level. + + + + + Error log level. + + + + + Fatal log level. + + + + + Off log level. + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + + The object object. + + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Delegate used to set/get the culture in use. + + This delegate marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. + + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture to use. + + This property was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The logger class. The class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. Use to pass the type of the needed Logger. + + Name of the logger. + The logger class. The class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + An object that implements IDisposable whose Dispose() method reenables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Checks if logging is currently enabled. + + if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + Mostly for compatibility with log4net. + + + + + + + + + + Gets the thread-local dictionary + + Must be true for any subsequent dictionary modification operation + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + + + + + + Simulate ImmutableDictionary behavior (which is not yet part of all .NET frameworks). + In future the real ImmutableDictionary could be used here to minimize memory usage and copying time. + + Must be true for any subsequent dictionary modification operation + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Mapped Diagnostics Context - used for log4net compatibility. + + This class marked as obsolete before NLog 2.0 and it may be removed in a future release. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified item exists in current thread MDC. + + + + Removes the specified item from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + + + + + + A mesage template + + + + The original template string. + This is the key passed to structured targets. + + + The list of literal parts, useful for string rendering. + It indicates the number of characters from the original string to print, + then there's a hole with how many chars to skip. + + "Hello {firstName} {lastName}!" + ------------------------------------- + â•‘P |S â•‘P|S â•‘P|Sâ•‘ + â•‘6 |11 â•‘1|10 â•‘1|0â•‘ + â•‘Hello |{firstName}â•‘ |{lastName}â•‘!â•‘ + + "{x} * 2 = {2x}" + -------------------- + â•‘P|S â•‘P |S â•‘ + â•‘0|3 â•‘7 |4 â•‘ + â•‘{x}â•‘ * 2 = |{2x}â•‘ + + The tricky part is escaped braces. They are represented by a skip = 0, + which is interpreted as "move one char forward, no hole". + + "Escaped }} is fun." + ---------------------- + â•‘P |Sâ•‘P |Sâ•‘ + â•‘9 |0â•‘8 |0â•‘ + â•‘Escaped }|}â•‘ is fun.|â•‘ + + + + This list of holes. It's used both to fill the string rendering + and to send values along the template to structured targets. + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Create a template, which is already parsed + + + + + + + + + Create a template, which is already parsed + + + + + + + + This is for testing only: recreates from the parsed data. + + + + This is for testing only: rebuilds the hole + + Add to this string builder + ref for performance + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Render templates + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + Do not fallback to StringBuilder.Format for positional templates. + The String Builder destination. + Parameters for the holes. + + + + Render a template to a string. + + The template. + The String Builder destination. + Culture. + Parameters for the holes. + Rendered template, never null. + + + + Convert Render or serialize a value, with optionnally backwardscompatible with + + + + Singleton + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serialising a scalar (string, int, NULL) or simple type (IFormattable) + + + + + + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + formatstring of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Nested Diagnostics Context - for log4net compatibility. + + This class marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top object off the NDC stack. The object is removed from the stack. + + The top object from the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all objects on the NDC stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + Mostly for compatibility with log4net. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Resets the stack to the original count during . + + + + + Initializes a new instance of the class. + + The stack. + The previous count. + + + + Reverts the stack to original item count. + + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwardscompatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the current scope, and returns its start time + + Scope Creation Time + + + + Peeks the first scope, and returns its start time + + Scope Creation Time + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + Override this to create the actual logging task + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Schedules the LogEventInfo for async writing + + The log event. + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation betweewn task-completion and timeout + + + + Creates new task to handle the writing of the input + + LogEvent to write + New Task created [true / false] + + + + Handles that scheduled task has completed (succesfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Information about database command + parameters. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the type of the command. + + The type of the command. + + + + + Gets or sets the connection string to run the command against. If not provided, connection string from the target is used. + + + + + + Gets or sets the command text. + + + + + + Gets or sets a value indicating whether to ignore failures. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Represents a parameter to a Database target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the parameter. + The parameter layout. + + + + Gets or sets the database parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Gets or sets the database parameter size. + + + + + + Gets or sets the database parameter precision. + + + + + + Gets or sets the database parameter scale. + + + + + + Writes log messages to the database using an ADO.NET provider. + + + - NETSTANDARD cannot load connectionstrings from .config + + Documentation on NLog Wiki + + + The configuration is dependent on the database type, because + there are differnet methods of specifying connection string, SQL + command and command parameters. + + MS SQL Server using System.Data.SqlClient: + + Oracle using System.Data.OracleClient: + + Oracle using System.Data.OleDBClient: + + To set up the log target programmatically use code like this (an equivalent of MSSQL configuration): + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the name of the database provider. + + + + The parameter name should be a provider invariant name as registered in machine.config or app.config. Common values are: + +
    +
  • System.Data.SqlClient - SQL Sever Client
  • +
  • System.Data.SqlServerCe.3.5 - SQL Sever Compact 3.5
  • +
  • System.Data.OracleClient - Oracle Client from Microsoft (deprecated in .NET Framework 4)
  • +
  • Oracle.DataAccess.Client - ODP.NET provider from Oracle
  • +
  • System.Data.SQLite - System.Data.SQLite driver for SQLite
  • +
  • Npgsql - Npgsql driver for PostgreSQL
  • +
  • MySql.Data.MySqlClient - MySQL Connector/Net
  • +
+ (Note that provider invariant names are not supported on .NET Compact Framework). + + Alternatively the parameter value can be be a fully qualified name of the provider + connection type (class implementing ) or one of the following tokens: + +
    +
  • sqlserver, mssql, microsoft or msde - SQL Server Data Provider
  • +
  • oledb - OLEDB Data Provider
  • +
  • odbc - ODBC Data Provider
  • +
+
+ +
+ + + Gets or sets the connection string. When provided, it overrides the values + specified in DBHost, DBUserName, DBPassword, DBDatabase. + + + + + + Gets or sets the connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. + + + + + + Gets the installation DDL commands. + + + + + + Gets the uninstallation DDL commands. + + + + + + Gets or sets a value indicating whether to keep the + database connection open between the log events. + + + + + + Obsolete - value will be ignored! The logging code always runs outside of transaction. + + Gets or sets a value indicating whether to use database transactions. + Some data providers require this. + + + + This option was removed in NLog 4.0 because the logging code always runs outside of transaction. + This ensures that the log gets written to the database if you rollback the main transaction because of an error and want to log the error. + + + + + Gets or sets the database host name. If the ConnectionString is not provided + this value will be used to construct the "Server=" part of the + connection string. + + + + + + Gets or sets the database user name. If the ConnectionString is not provided + this value will be used to construct the "User ID=" part of the + connection string. + + + + + + Gets or sets the database password. If the ConnectionString is not provided + this value will be used to construct the "Password=" part of the + connection string. + + + + + + Gets or sets the database name. If the ConnectionString is not provided + this value will be used to construct the "Database=" part of the + connection string. + + + + + + Gets or sets the text of the SQL command to be run on each log level. + + + Typically this is a SQL INSERT statement or a stored procedure call. + It should use the database-specific parameters (marked as @parameter + for SQL server or :parameter for Oracle, other data providers + have their own notation) and not the layout renderers, + because the latter is prone to SQL injection attacks. + The layout renderers should be specified as <parameter /> elements instead. + + + + + + Gets or sets the type of the SQL command to be run on each log level. + + + This specifies how the command text is interpreted, as "Text" (default) or as "StoredProcedure". + When using the value StoredProcedure, the commandText-property would + normally be the name of the stored procedure. TableDirect method is not supported in this context. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Set the to use it for opening connections to the database. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the database. It creates + a new database command, prepares parameters for it by calculating + layouts and executes the command. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Build the connectionstring from the properties. + + + Using at first, and falls back to the properties , + , and + + Event to render the layout inside the properties. + + + + + Adds the given list of DatabaseParameterInfo to the given IDbCommand after transforming them into IDbDataParameters. + + The IDbCommand to add parameters to + The list of DatabaseParameterInfo to transform into IDbDataParameters and to add to the IDbCommand + The log event to base the parameter's layout rendering on. + + + + Fake transaction + + Transactions aren't in .NET Core: https://github.com/dotnet/corefx/issues/2949 + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Fake option + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Mock target - useful for testing. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + Increases the number of messages. + + The logging event. + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialisation options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized succesfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ascii characters be encoded + JSON escaped string + + + + Get properties, cached for a type + + + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The begging position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. When the number of archive files exceed the obsolete archives are deleted. + + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + + When the number of archive files exceed the obsolete archives are deleted. + + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. When the number of archive files + exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Determine if old archive files should be deleted. + + Maximum number of archive files that should be kept + when old archives should be deleted; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the + highest number. When the number of archive files exceed the obsolete + archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + Documentation on NLog Wiki + + + + Default clean up period of the initilized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + The maximum number of initialised files before clean up procedures are initiated, + to keep the number of initialised files to a minimum. Chose 25 to cater for monthly rolling of log-files. + + + + + This value disables file archiving based on the size. + + + + + Holds the initialised files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialised files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + Setting this property to True helps improve performance. + + + + + + Gets or sets the maximum number of log filenames that should be stored as existing. + + + The bigger this number is the longer it will take to write each log record. The smaller the number is + the higher the chance that the clean function will be run when no new files have been opened. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. If this number is negative the files are + not automatically closed after a period of inactivity. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. If this number is negative or zero + the files are not flushed by timer. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. + Choose: + + + Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. +

+ Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. +

+
+ +
+ + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Returns estimated size for memory stream, based on events count and first event size in bytes. + + Count of events + Bytes count of first event + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occuring day of the week to return a DateTime for. + The DateTime of the next occuring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + Filename to archive. If null, then nothing to archive. + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialise a file to be used by the instance. Based on the number of initialised + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Invokes the archiving and clean up of older archive file based on the values of and properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formating and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Interface for serialization of values, maybe even objects to JSON format. + Useful for wrappers for existing serializers. + + + + + Returns a serialization of an object + into JSON format. + + The object to serialize to JSON. + Serialized value (null = Serialize failed). + + + + Options for JSON serialisation + + + + + Add quotes arround object keys? + + + + + Formatprovider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + Initializes a new instance of the class. + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms + and data structures like a hash table. + + + + + Determines whether the specified is + equal to this instance. + + The to compare with + this instance. + + Value of true if the specified + is equal to this instance; otherwise, false. + + + The parameter is null. + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Writes log messages to an ArrayList in memory for programmatic retrieval. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + Initializes the target. + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will be very slow. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6) (not supported on Windows Phone 7.0)
  • +
  • tcp4://host:port - force TCP/IPv4 (not supported on Windows Phone 7.0)
  • +
  • tcp6://host:port - force TCP/IPv6 (not supported on Windows Phone 7.0)
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6, not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp4://host:port - force UDP/IPv4 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp6://host:port - force UDP/IPv6 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). + + + + + + Gets or sets the maximum current connections. 0 = no maximum. + + + + + + Gets or sets the action that should be taken if the will be more connections than . + + + + + + Gets or sets the maximum queue size. + + + + + + Gets or sets the action that should be taken if the message is larger than + maxMessageSize. + + + + + + Gets or sets the encoding to be used. + + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + The action to be taken when there are more connections then the max. + + + + + Just allow it. + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. + + + + + Discard the entire message. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Sends log messages to the remote instance of NLog Viewer. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include stack contents. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Outputs log messages through the OutputDebugString() Win32 API. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Outputs the rendered logging event through the OutputDebugString() Win32 API. + + The logging event. + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Can be used if has been enabled. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Closes the target and releases any unmanaged resources. + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + NOTE! Obsolete, instead override WriteAsyncThreadSafe(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target, in a thread safe manner. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the event info in layout. + + The layout. + The event info. + String representing log event. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Marks class as a logging target and assigns a name to it. + + This attribute is not required when registering the target in the API. + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + Represents target that supports context capture using MDLC, MDC, NDLC and NDC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of MDC context + + + Internal Layout that allows capture of NDC context + + + Internal Layout that allows capture of MDLC context + + + Internal Layout that allows capture of NDLC context + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the layout used to format log messages. + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the text to be rendered. + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + + + Write from input to output. Fix the UTF-8 bom + + + + + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued (-1 means everything). + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides asynchronous, buffered execution of target writes. + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queueing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the limit of full s to write before yielding into + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent statisfies the . + If condition isn't set, flushes on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes the target. + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The aciton to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target. + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Writes logging event to the log target. + + Logging event to be written out. + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + The method remembers the last-known-successful target + and starts the iteration from it. + If is set, the method + resets the target to the first target + stored in . + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + Limits the number of messages written per timespan to the wrapped target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the DateTime when the current will be reset. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Sends log messages to a randomly selected target. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the time source. + +
+
diff --git a/MTC_Adapter/packages/NLog.4.5.11/lib/netstandard1.5/NLog.xml b/MTC_Adapter/packages/NLog.4.5.11/lib/netstandard1.5/NLog.xml new file mode 100644 index 0000000..bcd688e --- /dev/null +++ b/MTC_Adapter/packages/NLog.4.5.11/lib/netstandard1.5/NLog.xml @@ -0,0 +1,24236 @@ + + + + NLog + + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + internal class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + internal class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + internal class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + internal class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without wating) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + A value of true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + String Conversion Helpers + + + + + Converts input string value into + + Input value + Output value + Default value + Returns failure if the input value could not be parsed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + NLog internal logger. + + Writes to file, console or custom textwriter (see ) + + + Don't use as that can lead to recursive calls - stackoverflows + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Initializes static members of the InternalLogger class. + + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled. + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Relese configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the number of items in the array. + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Base class for representing nodes in condition expression trees. + + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + Returns a string representation of this expression. + + String literal in single quotes. + + + + Evaluates the expression by calculating the value + of the layout in the specified evaluation context. + + Evaluation context. + The value of the layout. + + + + Condition level expression (represented by the level keyword). + + + + + Returns a string representation of the expression. + + The 'level' string. + + + + Evaluates to the current log level. + + Evaluation context. Ignored. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + Returns a string representation of the expression. + + The literal value. + + + + Evaluates the expression. + + Evaluation context. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + Returns a string representation of this expression. + + A logger string. + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + Returns a string representation of this expression. + + The 'message' string. + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters. + + The method parameters. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Marks the class as containing condition methods. + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparision, e.g. parse a string to int. + + + + + + + Promoto to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparision. + + + index, 0 to maxint. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properies are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + New event args + + + + + + The assembly that is trying to load. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwardscomp. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Legacy interface, no longer used by the NLog engine + + + + + Gets or sets the JSON serializer to use with or + + + + + Gets or sets the string serializer to use with + + + + + Perform mesage template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in NLog.Extended.dll using late-bound types, so that we don't need a reference to NLog.Extended.dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Format of the excpetion output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + Registers a single type definition. + + The item name. + The type of the item. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Creates an item instance. + + The name of the item. + Created item. + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during installation/uninstallations. + + Log event info object. + + + + Keeps logging configuration and provides simple API + to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Variables defined in xml or in API. name is case case insensitive. + + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete on NLog 4.1 and it may be removed in a future release. + + + + Gets the variables defined in the configuration. + + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Compare objects based on their name. + + This property is use to cache the comparer object. + + + + Defines methods to support the comparison of objects for equality based on their name. + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for alle loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Flushes any pending log messages on all appenders. + + The asynchronous continuation. + + + + Validates the configuration. + + + + + Copies all variables from provided dictionary into current configuration variables. + + Master variables dictionary + + + + Replace a simple variable with a value. The orginal value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the new configuration + + The new configuration. + + + + Gets the old configuration + + The old configuration. + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or see cref="EnableLoggingForLevels"/> to enable logging. + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Target to be written to when the rule matches. + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + + Gets or sets logger name pattern. + + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends but not anywhere else. + + + + + Gets the collection of log levels enabled by this rule. + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to de disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + >Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + A that represents the current . + + + + + Checks whether te particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Factory for locating methods. + + The type of the class marker attribute. + The type of the method marker attribute. + + + + Gets a collection of all registered items in the factory. + + + Sequence of key/value pairs where each key represents the name + of the item and value is the of + the item. + + + + + Scans the assembly for classes marked with + and methods marked with and adds them + to the factory. + + The types to scan. + The prefix to use for names. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a simple name to an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The name of the item. + + + + Gets the name of the item. + + The name of the item. + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The input URI. + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Prevents a default instance of the class from being created. + + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Last error occured during configuration read + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Gets the required attribute. + + Name of the attribute. + Attribute value. + Throws if the attribute is not specified. + + + + Gets the optional boolean attribute value. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional boolean attribute value. If whitespace, then returning null. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional attribute value. + + Name of the attribute. + The default value. + Value of the attribute or default value. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Returns all parsing errors from current and all child elements. + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + Stack trace should not be captured. + + + + + Stack trace should be captured without source-level information. + + + + + Stack trace should be captured including source-level information such as line numbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + If set to true errors will be ignored during file processing. + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Remove all spaces, also in between text. + + text + text without spaces + Tabs and other whitespace is not removed! + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Checks whether any error during XML configuration parsing has occured. + If there are any and ThrowConfigExceptions or ThrowExceptions + setting is enabled - throws NLogConfigurationException, otherwise + just write an internal log at Warn level. + + Root NLog configuration xml element + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + Rules are added to this parameter. + + + + Split list on comma, trim items + + + no empty items + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language + described here. + + + + + Gets or sets the condition expression. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Can be used if has been enabled. + + + + + Constructor + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Global Diagnostics Context - used for log4net compatibility. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Include context properties + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Extensions for NLog . + + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Provides untyped IDictionary interface on top of generic IDictionary. + + The type of the key. + The type of the value. + + + + Initializes a new instance of the DictionaryAdapter class. + + The implementation. + + + + Gets an object containing the values in the object. + + + + An object containing the values in the object. + + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + + Gets an object containing the keys of the object. + + + + An object containing the keys of the object. + + + + + Gets or sets the with the specified key. + + Dictionary key. + Value corresponding to key or null if not found + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + + Removes all elements from the object. + + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + True if the contains an element with the key; otherwise, false. + + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Wrapper IDictionaryEnumerator. + + + + + Initializes a new instance of the class. + + The wrapped. + + + + Gets both the key and the value of the current dictionary entry. + + + + A containing both the key and the value of the current dictionary entry. + + + + + Gets the key of the current dictionary entry. + + + + The key of the current element of the enumeration. + + + + + Gets the value of the current dictionary entry. + + + + The value of the current element of the enumeration. + + + + + Gets the current element in the collection. + + + + The current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + + True if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Object construction helper. + + + + Initializes a new instance of the class. + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Interface for fakeable the current . Not fully implemented, please methods/properties as necessary. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appeander is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Closes this instance of the appender. + + + + + Flushes this current appender. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Factory class which creates objects. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialisation as it is an + intenal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + Thrown when is called on an Empty instance. + + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialised before the supplied time. + + The time which prior the appenders considered expired + + + + Fluch all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multiprocess-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Closes this instance. + + + + + Flushes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + An immutable object that stores basic file info. + + + + + Constructs a FileCharacteristics object. + + The time the file was created in UTC. + The time the file was last written to in UTC. + The size of the file in bytes. + + + + The time the file was created in UTC. + + + + + The time the file was last written to in UTC. + + + + + The size of the file in bytes. + + + + + Optimized routines to get the basic file characteristics of the specified file. + + + + + Initializes static members of the FileCharacteristicsHelper class. + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid filenames char array to avoid memory allocation everytime Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Format a log message + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Render the event info as parse as short + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as int + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as bool + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Logger configuration. + + + + + Initializes a new instance of the class. + + The targets by level. + Use the old exception log handling of NLog 3.0? + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete before NLog 4.3.11 and it will be removed in NLog 5. + + + + Gets targets for the specified level. + + The level. + Chain of targets with attached filters. + + + + Determines whether the specified level is enabled. + + The level. + + A value of true if the specified level is enabled; otherwise, false. + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes a continuation. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Performs sender-specific initialization. + + + + + Performs sender-specific close operation. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Parses the URI into an endpoint address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + Creates a new instance of the network sender based on a network URL:. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + /// + A newly created network sender. + + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Sends the specified text over the connected socket. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The address family. + Type of the socket. + Type of the protocol. + Implementation of to use. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Sends the specified text as a UDP datagram. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is a desktop version of Windows. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Portable implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Portable implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets current process ID. + + + + + + Gets current process name. + + + + + + Gets current process name (excluding filename extension, if any). + + + + + + Gets the name of the process. + + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Is this a property of the message? + + + + + + + Value of the property + Is this a property of the message? + + + + The properties of the logEvent + + + + + The properties extracted from the message + + + + + Injects the list of message-template-parameter into the IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The initially empty dictionary + Message-template-parameters was inserted into dictionary without trouble (true/false) + + + + Attempt to override the existing dictionary values using the message-template-parameters + + Message-template-parameters + The already filled dictionary + List of unique message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Is the property of array-type? + + Type which has the property + name of the property. + + + + + Get propertyinfo + + object which could have property + propertyname on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: http://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + Empty handle when is disabled + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Any operating system. + + + + + Unix/Linux operating systems. + + + + + Windows CE. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Unknown operating system. + + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid asssembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + formatstring. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Apend a int type (byte, int) as string + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Split a string + + + + + Split string with escape. The escape char is the same as the splitchar + + + split char. escaped also with this char + + + + + Split string with escape + + + + + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + cached result as calculating is expensive. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Returns details about current process and thread in a portable manner. + + + + + Initializes static members of the ThreadIDHelper class. + + + + + Gets the singleton instance of PortableThreadIDHelper or + Win32ThreadIDHelper depending on runtime environment. + + The instance. + + + + Gets current process ID. + + + + + Gets current process name. + + + + + Gets current process name (excluding filename extension, if any). + + + + + Helper for dealing with thread-local storage. + + + + + Allocates the data slot for storing thread-local information. + + Allocated slot key. + + + + Gets the data for a slot in thread-local storage. + + Type of the data. + The slot to get data for. + Automatically create the object if it doesn't exist. + + Slot data (will create T if null). + + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Also render the caller information attributes? (, + , ). + + See https://msdn.microsoft.com/en-us/library/hh534540.aspx + + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Renders all log event's properties and appends them to the specified . + + The to append the rendered data to. + Logging event. + + + + The names of caller information attributes. + https://msdn.microsoft.com/en-us/library/hh534540.aspx + TODO NLog ver. 5 - Remove these properties + + + + + Also render the call attributes? (, + , ). + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the , the second the second the + This string is used in + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Render the layout + + + + + + + Convert the formatting string + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + Initializes a new instance of the class. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + - Silverlight: Value for is always returned. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders an assembly version and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Gets the assembly specified by , or entry assembly otherwise + + Found assembly + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets additional version information. + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with with the base directory. + + + + + + Renders the application base directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source file name. Full callsite + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site (class name, method name and source information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A counter value (increases on each layout rendering). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + Renders the specified counter value and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + Renders the current directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current date and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + Renders the specified environment variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the name of the item. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. See . + + + + + Log event context data with default options. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + Renders the specified exception information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + + + Find name of method on stracktrace. + + Full stracktrace + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + Renders the contents of the specified file and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Create a new. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the garbage collector. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Global Diagnostics Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified Global Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Globally-unique identifier (GUID). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + Renders a newly generated GUID string and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + Renders the specified installation parameter and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a , needed for date and number formats + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent and the current configuration. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Marks class as a layout renderer and assigns a name to it. + + This attribute is not required when registering the layout in the API. + + + + Initializes a new instance of the class. + + Name of the layout renderer, without the `${ }` + + + + Format of the ${level} layout renderer output. + + + + + Render the full level name. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Renders the current log level and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes the layout renderer. + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the XML logging event and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Renders the logger name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the date in the long format (yyyy-MM-dd HH:mm:ss.ffff) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The machine name that the process is running on. + + + + + Initializes the layout renderer. + + + + + Renders the machine name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Logical Context item (based on CallContext). + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDLC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + Renders the log message including any positional parameters and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Nested Diagnostic Context item. Provided for compatibility with log4net. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + Renders the specified Nested Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Renderer (Async scope) + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Renders the specified Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + Renders the timing details of the Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A newline literal. + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The directory where NLog.dll is located. + + + + + Initializes static members of the NLogDirLayoutRenderer class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current process. + + + + + Renders the current process ID. + + The to append the rendered data to. + Logging event. + + + + The information about the running process. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Renders the current process name (optionally with a full path). + + The to append the rendered data to. + Logging event. + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders the current process running time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + + + + The sequence ID + + + + + Renders the current log sequence ID and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current short date string (yyyy-MM-dd) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current thread. + + + + + Renders the current thread identifier and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The name of the current thread. + + + + + Renders the current thread name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The Ticks value of current date and time. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders time in the 24-h format (HH:mm:ss.mmm) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render a NLog variable (xml or config) + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Initializes the layout renderer. + + + + + Try get the + + + + + + + Renders the specified variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply JSON encoding. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + RegistryLayoutRenderer + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Initializes the layout renderer. + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See http://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Trims the whitespace from the result of another layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + Renders the inner message, processes it and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + + Output to be transform. + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply XML encoding. + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Padded and trimmed string. + + + + A layout containing one or more nested layouts. + + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + Initializes the layout. + + + + + Formats the log event relying on inner layouts. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event relying on inner layouts. + + The logging event. + for the result + + + + Closes the layout. + + + + + Generate description of Compound Layout + + Compound Layout String Description + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + If is set, then the header generation with columnnames will be disabled. + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + Initializes the layout. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event for write. + + The logging event. + for the result + + + + Get the headers with the column names. + + + + + + Render 1 columnvalue (text or header) to + + write-to + current col index + col text + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Generate description of CSV Layout + + CSV Layout String Description + + + + Specifies CSV quoting modes. + + + + + Quote all column. + + + + + Quote nothing. + + + + + Quote only whose values contain the quote symbol or + the separator. + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Formats the log event as a JSON document for writing. + + The logging event. + for the result + + + + Formats the log event as a JSON document for writing. + + The log event to be formatted. + A JSON string representation of the log event. + + + + Generate description of JSON Layout + + JSON Layout String Description + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doens't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders the event info in layout. + + The event info. + String representing log event. + + + + Optimized version of for internal Layouts. Works best + when override of is available. + + The event info. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + StringBuilder to help minimize allocations [optional]. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Marks class as a layout renderer and assigns a format string to it. + + + + + Initializes a new instance of the class. + + Layout name. + + + + Parses layout strings. + + + + + Add to + + + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result. + + + + A specialized layout that renders Log4j-compatible XML events. + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Represents a string with embedded placeholders that can render contextual information. + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Returns a that represents the current object. + + + A that represents the current object. + + + + + Initializes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + for the result + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets the logger short name. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Gets the dictionary of per-event context properties. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + The exception. + Instance of . + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Set the + + true = Always, false = Never, null = Auto Detect + + + + Specialized LogFactory that can return instances of custom logger types. + + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the name of the current class and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. After setting this property all + existing loggers will be re-configured, so there is no need to call + manually. + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets the logger with the name of the current class. + + The logger with type . + Type of the logger + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The type of the logger to create. The type must inherit from + The logger of type . + This is a slow-running method. Make sure you are not calling this method in a + loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. Use to pass the type of the needed Logger. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Returns if logging is currently enabled. + + A value of if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this logfactory is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Gets the filter result. + + The filter chain. + The log event. + The result of the filter. + + + + Defines available log levels. + + + + + Trace log level. + + + + + Debug log level. + + + + + Info log level. + + + + + Warn log level. + + + + + Error log level. + + + + + Fatal log level. + + + + + Off log level. + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + + The object object. + + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Delegate used to set/get the culture in use. + + This delegate marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. + + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture to use. + + This property was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The logger class. The class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. Use to pass the type of the needed Logger. + + Name of the logger. + The logger class. The class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + An object that implements IDisposable whose Dispose() method reenables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Checks if logging is currently enabled. + + if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + Mostly for compatibility with log4net. + + + + + + + + + + Gets the thread-local dictionary + + Must be true for any subsequent dictionary modification operation + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + + + + + + Simulate ImmutableDictionary behavior (which is not yet part of all .NET frameworks). + In future the real ImmutableDictionary could be used here to minimize memory usage and copying time. + + Must be true for any subsequent dictionary modification operation + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Mapped Diagnostics Context - used for log4net compatibility. + + This class marked as obsolete before NLog 2.0 and it may be removed in a future release. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified item exists in current thread MDC. + + + + Removes the specified item from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + + + + + + A mesage template + + + + The original template string. + This is the key passed to structured targets. + + + The list of literal parts, useful for string rendering. + It indicates the number of characters from the original string to print, + then there's a hole with how many chars to skip. + + "Hello {firstName} {lastName}!" + ------------------------------------- + â•‘P |S â•‘P|S â•‘P|Sâ•‘ + â•‘6 |11 â•‘1|10 â•‘1|0â•‘ + â•‘Hello |{firstName}â•‘ |{lastName}â•‘!â•‘ + + "{x} * 2 = {2x}" + -------------------- + â•‘P|S â•‘P |S â•‘ + â•‘0|3 â•‘7 |4 â•‘ + â•‘{x}â•‘ * 2 = |{2x}â•‘ + + The tricky part is escaped braces. They are represented by a skip = 0, + which is interpreted as "move one char forward, no hole". + + "Escaped }} is fun." + ---------------------- + â•‘P |Sâ•‘P |Sâ•‘ + â•‘9 |0â•‘8 |0â•‘ + â•‘Escaped }|}â•‘ is fun.|â•‘ + + + + This list of holes. It's used both to fill the string rendering + and to send values along the template to structured targets. + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Create a template, which is already parsed + + + + + + + + + Create a template, which is already parsed + + + + + + + + This is for testing only: recreates from the parsed data. + + + + This is for testing only: rebuilds the hole + + Add to this string builder + ref for performance + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Render templates + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + Do not fallback to StringBuilder.Format for positional templates. + The String Builder destination. + Parameters for the holes. + + + + Render a template to a string. + + The template. + The String Builder destination. + Culture. + Parameters for the holes. + Rendered template, never null. + + + + Convert Render or serialize a value, with optionnally backwardscompatible with + + + + Singleton + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serialising a scalar (string, int, NULL) or simple type (IFormattable) + + + + + + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + formatstring of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Nested Diagnostics Context - for log4net compatibility. + + This class marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top object off the NDC stack. The object is removed from the stack. + + The top object from the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all objects on the NDC stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + Mostly for compatibility with log4net. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Resets the stack to the original count during . + + + + + Initializes a new instance of the class. + + The stack. + The previous count. + + + + Reverts the stack to original item count. + + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwardscompatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the current scope, and returns its start time + + Scope Creation Time + + + + Peeks the first scope, and returns its start time + + Scope Creation Time + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + Override this to create the actual logging task + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Schedules the LogEventInfo for async writing + + The log event. + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation betweewn task-completion and timeout + + + + Creates new task to handle the writing of the input + + LogEvent to write + New Task created [true / false] + + + + Handles that scheduled task has completed (succesfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Writes log messages to the console with customizable coloring. + + Documentation on NLog Wiki + + + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified log event to the console highlighting entries + and words based on a set of defined rules. + + Log event. + + + + Color pair (foreground and background). + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the Console.Out or + Console.Error depending on the value of the Error flag. + + The logging event. + + Note that the Error option is not supported on .NET Compact Framework. + + + + + Write to output + + text to be written. + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + Access this property will compile the Regex. + + + + Get regex options. + + Default option to start with. + + + + + Get Expression for a . + + + + + + Replace regex result + + + + + + + Information about database command + parameters. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the type of the command. + + The type of the command. + + + + + Gets or sets the connection string to run the command against. If not provided, connection string from the target is used. + + + + + + Gets or sets the command text. + + + + + + Gets or sets a value indicating whether to ignore failures. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Represents a parameter to a Database target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the parameter. + The parameter layout. + + + + Gets or sets the database parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Gets or sets the database parameter size. + + + + + + Gets or sets the database parameter precision. + + + + + + Gets or sets the database parameter scale. + + + + + + Writes log messages to the database using an ADO.NET provider. + + + - NETSTANDARD cannot load connectionstrings from .config + + Documentation on NLog Wiki + + + The configuration is dependent on the database type, because + there are differnet methods of specifying connection string, SQL + command and command parameters. + + MS SQL Server using System.Data.SqlClient: + + Oracle using System.Data.OracleClient: + + Oracle using System.Data.OleDBClient: + + To set up the log target programmatically use code like this (an equivalent of MSSQL configuration): + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the name of the database provider. + + + + The parameter name should be a provider invariant name as registered in machine.config or app.config. Common values are: + +
    +
  • System.Data.SqlClient - SQL Sever Client
  • +
  • System.Data.SqlServerCe.3.5 - SQL Sever Compact 3.5
  • +
  • System.Data.OracleClient - Oracle Client from Microsoft (deprecated in .NET Framework 4)
  • +
  • Oracle.DataAccess.Client - ODP.NET provider from Oracle
  • +
  • System.Data.SQLite - System.Data.SQLite driver for SQLite
  • +
  • Npgsql - Npgsql driver for PostgreSQL
  • +
  • MySql.Data.MySqlClient - MySQL Connector/Net
  • +
+ (Note that provider invariant names are not supported on .NET Compact Framework). + + Alternatively the parameter value can be be a fully qualified name of the provider + connection type (class implementing ) or one of the following tokens: + +
    +
  • sqlserver, mssql, microsoft or msde - SQL Server Data Provider
  • +
  • oledb - OLEDB Data Provider
  • +
  • odbc - ODBC Data Provider
  • +
+
+ +
+ + + Gets or sets the connection string. When provided, it overrides the values + specified in DBHost, DBUserName, DBPassword, DBDatabase. + + + + + + Gets or sets the connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. + + + + + + Gets the installation DDL commands. + + + + + + Gets the uninstallation DDL commands. + + + + + + Gets or sets a value indicating whether to keep the + database connection open between the log events. + + + + + + Obsolete - value will be ignored! The logging code always runs outside of transaction. + + Gets or sets a value indicating whether to use database transactions. + Some data providers require this. + + + + This option was removed in NLog 4.0 because the logging code always runs outside of transaction. + This ensures that the log gets written to the database if you rollback the main transaction because of an error and want to log the error. + + + + + Gets or sets the database host name. If the ConnectionString is not provided + this value will be used to construct the "Server=" part of the + connection string. + + + + + + Gets or sets the database user name. If the ConnectionString is not provided + this value will be used to construct the "User ID=" part of the + connection string. + + + + + + Gets or sets the database password. If the ConnectionString is not provided + this value will be used to construct the "Password=" part of the + connection string. + + + + + + Gets or sets the database name. If the ConnectionString is not provided + this value will be used to construct the "Database=" part of the + connection string. + + + + + + Gets or sets the text of the SQL command to be run on each log level. + + + Typically this is a SQL INSERT statement or a stored procedure call. + It should use the database-specific parameters (marked as @parameter + for SQL server or :parameter for Oracle, other data providers + have their own notation) and not the layout renderers, + because the latter is prone to SQL injection attacks. + The layout renderers should be specified as <parameter /> elements instead. + + + + + + Gets or sets the type of the SQL command to be run on each log level. + + + This specifies how the command text is interpreted, as "Text" (default) or as "StoredProcedure". + When using the value StoredProcedure, the commandText-property would + normally be the name of the stored procedure. TableDirect method is not supported in this context. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Set the to use it for opening connections to the database. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the database. It creates + a new database command, prepares parameters for it by calculating + layouts and executes the command. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Build the connectionstring from the properties. + + + Using at first, and falls back to the properties , + , and + + Event to render the layout inside the properties. + + + + + Adds the given list of DatabaseParameterInfo to the given IDbCommand after transforming them into IDbDataParameters. + + The IDbCommand to add parameters to + The list of DatabaseParameterInfo to transform into IDbDataParameters and to add to the IDbCommand + The log event to base the parameter's layout rendering on. + + + + Fake transaction + + Transactions aren't in .NET Core: https://github.com/dotnet/corefx/issues/2949 + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Fake option + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Mock target - useful for testing. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + Increases the number of messages. + + The logging event. + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialisation options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized succesfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ascii characters be encoded + JSON escaped string + + + + Get properties, cached for a type + + + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The begging position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. When the number of archive files exceed the obsolete archives are deleted. + + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + + When the number of archive files exceed the obsolete archives are deleted. + + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. When the number of archive files + exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Determine if old archive files should be deleted. + + Maximum number of archive files that should be kept + when old archives should be deleted; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the + highest number. When the number of archive files exceed the obsolete + archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + Documentation on NLog Wiki + + + + Default clean up period of the initilized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + The maximum number of initialised files before clean up procedures are initiated, + to keep the number of initialised files to a minimum. Chose 25 to cater for monthly rolling of log-files. + + + + + This value disables file archiving based on the size. + + + + + Holds the initialised files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialised files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + Setting this property to True helps improve performance. + + + + + + Gets or sets the maximum number of log filenames that should be stored as existing. + + + The bigger this number is the longer it will take to write each log record. The smaller the number is + the higher the chance that the clean function will be run when no new files have been opened. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. If this number is negative the files are + not automatically closed after a period of inactivity. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. If this number is negative or zero + the files are not flushed by timer. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. + Choose: + + + Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. +

+ Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. +

+
+ +
+ + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicationg whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Returns estimated size for memory stream, based on events count and first event size in bytes. + + Count of events + Bytes count of first event + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occuring day of the week to return a DateTime for. + The DateTime of the next occuring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + Filename to archive. If null, then nothing to archive. + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialise a file to be used by the instance. Based on the number of initialised + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Invokes the archiving and clean up of older archive file based on the values of and properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formating and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Interface for serialization of values, maybe even objects to JSON format. + Useful for wrappers for existing serializers. + + + + + Returns a serialization of an object + into JSON format. + + The object to serialize to JSON. + Serialized value (null = Serialize failed). + + + + Options for JSON serialisation + + + + + Add quotes arround object keys? + + + + + Formatprovider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + Initializes a new instance of the class. + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms + and data structures like a hash table. + + + + + Determines whether the specified is + equal to this instance. + + The to compare with + this instance. + + Value of true if the specified + is equal to this instance; otherwise, false. + + + The parameter is null. + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + + true if this converter can perform the conversion; otherwise, false. + + An that provides a format context. A that represents the type you want to convert from. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + + An that represents the converted value. + + An that provides a format context. The to use as the current culture. The to convert. The conversion cannot be performed. + + + + Writes log messages to an ArrayList in memory for programmatic retrieval. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + Initializes the target. + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will be very slow. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6) (not supported on Windows Phone 7.0)
  • +
  • tcp4://host:port - force TCP/IPv4 (not supported on Windows Phone 7.0)
  • +
  • tcp6://host:port - force TCP/IPv6 (not supported on Windows Phone 7.0)
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6, not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp4://host:port - force UDP/IPv4 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp6://host:port - force UDP/IPv6 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). + + + + + + Gets or sets the maximum current connections. 0 = no maximum. + + + + + + Gets or sets the action that should be taken if the will be more connections than . + + + + + + Gets or sets the maximum queue size. + + + + + + Gets or sets the action that should be taken if the message is larger than + maxMessageSize. + + + + + + Gets or sets the encoding to be used. + + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + The action to be taken when there are more connections then the max. + + + + + Just allow it. + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. + + + + + Discard the entire message. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Sends log messages to the remote instance of NLog Viewer. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include stack contents. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Outputs log messages through the OutputDebugString() Win32 API. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Outputs the rendered logging event through the OutputDebugString() Win32 API. + + The logging event. + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Can be used if has been enabled. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Closes the target and releases any unmanaged resources. + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + NOTE! Obsolete, instead override WriteAsyncThreadSafe(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target, in a thread safe manner. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the event info in layout. + + The layout. + The event info. + String representing log event. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Marks class as a logging target and assigns a name to it. + + This attribute is not required when registering the target in the API. + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + Represents target that supports context capture using MDLC, MDC, NDLC and NDC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of MDC context + + + Internal Layout that allows capture of NDC context + + + Internal Layout that allows capture of MDLC context + + + Internal Layout that allows capture of NDLC context + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the layout used to format log messages. + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the text to be rendered. + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Always use independent of + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + + + Write from input to output. Fix the UTF-8 bom + + + + + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued (-1 means everything). + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides asynchronous, buffered execution of target writes. + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queueing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the limit of full s to write before yielding into + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent statisfies the . + If condition isn't set, flushes on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes the target. + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The aciton to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target. + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Writes logging event to the log target. + + Logging event to be written out. + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + The method remembers the last-known-successful target + and starts the iteration from it. + If is set, the method + resets the target to the first target + stored in . + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + Limits the number of messages written per timespan to the wrapped target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the DateTime when the current will be reset. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Sends log messages to a randomly selected target. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the time source. + +
+
diff --git a/MTC_Adapter/packages/NLog.4.5.11/lib/netstandard2.0/NLog.xml b/MTC_Adapter/packages/NLog.4.5.11/lib/netstandard2.0/NLog.xml new file mode 100644 index 0000000..91167e8 --- /dev/null +++ b/MTC_Adapter/packages/NLog.4.5.11/lib/netstandard2.0/NLog.xml @@ -0,0 +1,24947 @@ + + + + NLog + + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + internal class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + internal class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + internal class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + internal class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without wating) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + A value of true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + String Conversion Helpers + + + + + Converts input string value into + + Input value + Output value + Default value + Returns failure if the input value could not be parsed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + NLog internal logger. + + Writes to file, console or custom textwriter (see ) + + + Don't use as that can lead to recursive calls - stackoverflows + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Initializes static members of the InternalLogger class. + + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled. + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Relese configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the number of items in the array. + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Base class for representing nodes in condition expression trees. + + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + Returns a string representation of this expression. + + String literal in single quotes. + + + + Evaluates the expression by calculating the value + of the layout in the specified evaluation context. + + Evaluation context. + The value of the layout. + + + + Condition level expression (represented by the level keyword). + + + + + Returns a string representation of the expression. + + The 'level' string. + + + + Evaluates to the current log level. + + Evaluation context. Ignored. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + Returns a string representation of the expression. + + The literal value. + + + + Evaluates the expression. + + Evaluation context. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + Returns a string representation of this expression. + + A logger string. + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + Returns a string representation of this expression. + + The 'message' string. + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters. + + The method parameters. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Marks the class as containing condition methods. + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparision, e.g. parse a string to int. + + + + + + + Promoto to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparision. + + + index, 0 to maxint. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properies are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + New event args + + + + + + The assembly that is trying to load. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwardscomp. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Legacy interface, no longer used by the NLog engine + + + + + Gets or sets the JSON serializer to use with or + + + + + Gets or sets the string serializer to use with + + + + + Perform mesage template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in NLog.Extended.dll using late-bound types, so that we don't need a reference to NLog.Extended.dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Format of the excpetion output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + Registers a single type definition. + + The item name. + The type of the item. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Creates an item instance. + + The name of the item. + Created item. + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during installation/uninstallations. + + Log event info object. + + + + Keeps logging configuration and provides simple API + to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Variables defined in xml or in API. name is case case insensitive. + + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete on NLog 4.1 and it may be removed in a future release. + + + + Gets the variables defined in the configuration. + + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Compare objects based on their name. + + This property is use to cache the comparer object. + + + + Defines methods to support the comparison of objects for equality based on their name. + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for alle loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Flushes any pending log messages on all appenders. + + The asynchronous continuation. + + + + Validates the configuration. + + + + + Copies all variables from provided dictionary into current configuration variables. + + Master variables dictionary + + + + Replace a simple variable with a value. The orginal value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the new configuration + + The new configuration. + + + + Gets the old configuration + + The old configuration. + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or see cref="EnableLoggingForLevels"/> to enable logging. + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Target to be written to when the rule matches. + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + + Gets or sets logger name pattern. + + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends but not anywhere else. + + + + + Gets the collection of log levels enabled by this rule. + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to de disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + >Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + A that represents the current . + + + + + Checks whether te particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Factory for locating methods. + + The type of the class marker attribute. + The type of the method marker attribute. + + + + Gets a collection of all registered items in the factory. + + + Sequence of key/value pairs where each key represents the name + of the item and value is the of + the item. + + + + + Scans the assembly for classes marked with + and methods marked with and adds them + to the factory. + + The types to scan. + The prefix to use for names. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a simple name to an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The name of the item. + + + + Gets the name of the item. + + The name of the item. + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The input URI. + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Prevents a default instance of the class from being created. + + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Last error occured during configuration read + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Gets the required attribute. + + Name of the attribute. + Attribute value. + Throws if the attribute is not specified. + + + + Gets the optional boolean attribute value. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional boolean attribute value. If whitespace, then returning null. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional attribute value. + + Name of the attribute. + The default value. + Value of the attribute or default value. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Returns all parsing errors from current and all child elements. + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + Stack trace should not be captured. + + + + + Stack trace should be captured without source-level information. + + + + + Stack trace should be captured including source-level information such as line numbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + If set to true errors will be ignored during file processing. + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Remove all spaces, also in between text. + + text + text without spaces + Tabs and other whitespace is not removed! + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Checks whether any error during XML configuration parsing has occured. + If there are any and ThrowConfigExceptions or ThrowExceptions + setting is enabled - throws NLogConfigurationException, otherwise + just write an internal log at Warn level. + + Root NLog configuration xml element + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + Rules are added to this parameter. + + + + Split list on comma, trim items + + + no empty items + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language + described here. + + + + + Gets or sets the condition expression. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Can be used if has been enabled. + + + + + Constructor + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Global Diagnostics Context - used for log4net compatibility. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Include context properties + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Extensions for NLog . + + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Provides untyped IDictionary interface on top of generic IDictionary. + + The type of the key. + The type of the value. + + + + Initializes a new instance of the DictionaryAdapter class. + + The implementation. + + + + Gets an object containing the values in the object. + + + + An object containing the values in the object. + + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + + Gets an object containing the keys of the object. + + + + An object containing the keys of the object. + + + + + Gets or sets the with the specified key. + + Dictionary key. + Value corresponding to key or null if not found + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + + Removes all elements from the object. + + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + True if the contains an element with the key; otherwise, false. + + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Wrapper IDictionaryEnumerator. + + + + + Initializes a new instance of the class. + + The wrapped. + + + + Gets both the key and the value of the current dictionary entry. + + + + A containing both the key and the value of the current dictionary entry. + + + + + Gets the key of the current dictionary entry. + + + + The key of the current element of the enumeration. + + + + + Gets the value of the current dictionary entry. + + + + The value of the current element of the enumeration. + + + + + Gets the current element in the collection. + + + + The current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + + True if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Object construction helper. + + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Interface for fakeable the current . Not fully implemented, please methods/properties as necessary. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appeander is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Closes this instance of the appender. + + + + + Flushes this current appender. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Factory class which creates objects. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialisation as it is an + intenal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + Thrown when is called on an Empty instance. + + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialised before the supplied time. + + The time which prior the appenders considered expired + + + + Fluch all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multiprocess-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Closes this instance. + + + + + Flushes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + An immutable object that stores basic file info. + + + + + Constructs a FileCharacteristics object. + + The time the file was created in UTC. + The time the file was last written to in UTC. + The size of the file in bytes. + + + + The time the file was created in UTC. + + + + + The time the file was last written to in UTC. + + + + + The size of the file in bytes. + + + + + Optimized routines to get the basic file characteristics of the specified file. + + + + + Initializes static members of the FileCharacteristicsHelper class. + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid filenames char array to avoid memory allocation everytime Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Format a log message + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Render the event info as parse as short + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as int + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as bool + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Logger configuration. + + + + + Initializes a new instance of the class. + + The targets by level. + Use the old exception log handling of NLog 3.0? + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete before NLog 4.3.11 and it will be removed in NLog 5. + + + + Gets targets for the specified level. + + The level. + Chain of targets with attached filters. + + + + Determines whether the specified level is enabled. + + The level. + + A value of true if the specified level is enabled; otherwise, false. + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes a continuation. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Performs sender-specific initialization. + + + + + Performs sender-specific close operation. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Parses the URI into an endpoint address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + Creates a new instance of the network sender based on a network URL:. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + /// + A newly created network sender. + + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Sends the specified text over the connected socket. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The address family. + Type of the socket. + Type of the protocol. + Implementation of to use. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Sends the specified text as a UDP datagram. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is a desktop version of Windows. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Portable implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Portable implementation of . + + + + + Initializes a new instance of the class. + + + + + Gets current process ID. + + + + + + Gets current process name. + + + + + + Gets current process name (excluding filename extension, if any). + + + + + + Gets the name of the process. + + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Is this a property of the message? + + + + + + + Value of the property + Is this a property of the message? + + + + The properties of the logEvent + + + + + The properties extracted from the message + + + + + Injects the list of message-template-parameter into the IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The initially empty dictionary + Message-template-parameters was inserted into dictionary without trouble (true/false) + + + + Attempt to override the existing dictionary values using the message-template-parameters + + Message-template-parameters + The already filled dictionary + List of unique message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Is the property of array-type? + + Type which has the property + name of the property. + + + + + Get propertyinfo + + object which could have property + propertyname on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: http://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + Empty handle when is disabled + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Any operating system. + + + + + Unix/Linux operating systems. + + + + + Windows CE. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Unknown operating system. + + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid asssembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + formatstring. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Apend a int type (byte, int) as string + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Split a string + + + + + Split string with escape. The escape char is the same as the splitchar + + + split char. escaped also with this char + + + + + Split string with escape + + + + + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + cached result as calculating is expensive. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Returns details about current process and thread in a portable manner. + + + + + Initializes static members of the ThreadIDHelper class. + + + + + Gets the singleton instance of PortableThreadIDHelper or + Win32ThreadIDHelper depending on runtime environment. + + The instance. + + + + Gets current process ID. + + + + + Gets current process name. + + + + + Gets current process name (excluding filename extension, if any). + + + + + Helper for dealing with thread-local storage. + + + + + Allocates the data slot for storing thread-local information. + + Allocated slot key. + + + + Gets the data for a slot in thread-local storage. + + Type of the data. + The slot to get data for. + Automatically create the object if it doesn't exist. + + Slot data (will create T if null). + + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Also render the caller information attributes? (, + , ). + + See https://msdn.microsoft.com/en-us/library/hh534540.aspx + + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Renders all log event's properties and appends them to the specified . + + The to append the rendered data to. + Logging event. + + + + The names of caller information attributes. + https://msdn.microsoft.com/en-us/library/hh534540.aspx + TODO NLog ver. 5 - Remove these properties + + + + + Also render the call attributes? (, + , ). + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the , the second the second the + This string is used in + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Render the layout + + + + + + + Convert the formatting string + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + Initializes a new instance of the class. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + - Silverlight: Value for is always returned. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders an assembly version and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Gets the assembly specified by , or entry assembly otherwise + + Found assembly + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets additional version information. + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with with the base directory. + + + + + + Renders the application base directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source file name. Full callsite + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site (class name, method name and source information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A counter value (increases on each layout rendering). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + Renders the specified counter value and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + Renders the current directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current date and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + Renders the specified environment variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the name of the item. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. See . + + + + + Log event context data with default options. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + Renders the specified exception information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + Renders the contents of the specified file and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Create a new. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the garbage collector. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Global Diagnostics Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified Global Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Globally-unique identifier (GUID). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + Renders a newly generated GUID string and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Thread identity information (name and authentication information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + Renders the specified identity information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + Renders the specified installation parameter and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a , needed for date and number formats + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent and the current configuration. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Marks class as a layout renderer and assigns a name to it. + + This attribute is not required when registering the layout in the API. + + + + Initializes a new instance of the class. + + Name of the layout renderer, without the `${ }` + + + + Format of the ${level} layout renderer output. + + + + + Render the full level name. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Renders the current log level and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes the layout renderer. + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the XML logging event and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Renders the logger name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the date in the long format (yyyy-MM-dd HH:mm:ss.ffff) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The machine name that the process is running on. + + + + + Initializes the layout renderer. + + + + + Renders the machine name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Logical Context item (based on CallContext). + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDLC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + Renders the log message including any positional parameters and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Nested Diagnostic Context item. Provided for compatibility with log4net. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + Renders the specified Nested Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Renderer (Async scope) + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Renders the specified Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + Renders the timing details of the Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A newline literal. + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The directory where NLog.dll is located. + + + + + Initializes static members of the NLogDirLayoutRenderer class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current process. + + + + + Renders the current process ID. + + The to append the rendered data to. + Logging event. + + + + The information about the running process. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Renders the current process name (optionally with a full path). + + The to append the rendered data to. + Logging event. + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders the current process running time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + + + + The sequence ID + + + + + Renders the current log sequence ID and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current short date string (yyyy-MM-dd) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current thread. + + + + + Renders the current thread identifier and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The name of the current thread. + + + + + Renders the current thread name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The Ticks value of current date and time. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders time in the 24-h format (HH:mm:ss.mmm) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + Renders the current trace activity ID. + + The to append the rendered data to. + Logging event. + + + + Render a NLog variable (xml or config) + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Initializes the layout renderer. + + + + + Try get the + + + + + + + Renders the specified variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply JSON encoding. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + RegistryLayoutRenderer + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Initializes the layout renderer. + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See http://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Trims the whitespace from the result of another layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + Renders the inner message, processes it and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + + Output to be transform. + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply XML encoding. + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Padded and trimmed string. + + + + A layout containing one or more nested layouts. + + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + Initializes the layout. + + + + + Formats the log event relying on inner layouts. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event relying on inner layouts. + + The logging event. + for the result + + + + Closes the layout. + + + + + Generate description of Compound Layout + + Compound Layout String Description + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + If is set, then the header generation with columnnames will be disabled. + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + Initializes the layout. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event for write. + + The logging event. + for the result + + + + Get the headers with the column names. + + + + + + Render 1 columnvalue (text or header) to + + write-to + current col index + col text + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Generate description of CSV Layout + + CSV Layout String Description + + + + Specifies CSV quoting modes. + + + + + Quote all column. + + + + + Quote nothing. + + + + + Quote only whose values contain the quote symbol or + the separator. + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Formats the log event as a JSON document for writing. + + The logging event. + for the result + + + + Formats the log event as a JSON document for writing. + + The log event to be formatted. + A JSON string representation of the log event. + + + + Generate description of JSON Layout + + JSON Layout String Description + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doens't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders the event info in layout. + + The event info. + String representing log event. + + + + Optimized version of for internal Layouts. Works best + when override of is available. + + The event info. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + StringBuilder to help minimize allocations [optional]. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Marks class as a layout renderer and assigns a format string to it. + + + + + Initializes a new instance of the class. + + Layout name. + + + + Parses layout strings. + + + + + Add to + + + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result. + + + + A specialized layout that renders Log4j-compatible XML events. + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Represents a string with embedded placeholders that can render contextual information. + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Returns a that represents the current object. + + + A that represents the current object. + + + + + Initializes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + for the result + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets the logger short name. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Gets the dictionary of per-event context properties. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + The exception. + Instance of . + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Set the + + true = Always, false = Never, null = Auto Detect + + + + Specialized LogFactory that can return instances of custom logger types. + + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the name of the current class and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. After setting this property all + existing loggers will be re-configured, so there is no need to call + manually. + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets the logger with the name of the current class. + + The logger with type . + Type of the logger + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The type of the logger to create. The type must inherit from + The logger of type . + This is a slow-running method. Make sure you are not calling this method in a + loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. Use to pass the type of the needed Logger. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Returns if logging is currently enabled. + + A value of if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this logfactory is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Gets the filter result. + + The filter chain. + The log event. + The result of the filter. + + + + Defines available log levels. + + + + + Trace log level. + + + + + Debug log level. + + + + + Info log level. + + + + + Warn log level. + + + + + Error log level. + + + + + Fatal log level. + + + + + Off log level. + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + + The object object. + + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Delegate used to set/get the culture in use. + + This delegate marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. + + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture to use. + + This property was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The logger class. The class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. Use to pass the type of the needed Logger. + + Name of the logger. + The logger class. The class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + An object that implements IDisposable whose Dispose() method reenables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Checks if logging is currently enabled. + + if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + Mostly for compatibility with log4net. + + + + + + + + + + Gets the thread-local dictionary + + Must be true for any subsequent dictionary modification operation + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + + + + + + Simulate ImmutableDictionary behavior (which is not yet part of all .NET frameworks). + In future the real ImmutableDictionary could be used here to minimize memory usage and copying time. + + Must be true for any subsequent dictionary modification operation + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Mapped Diagnostics Context - used for log4net compatibility. + + This class marked as obsolete before NLog 2.0 and it may be removed in a future release. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified item exists in current thread MDC. + + + + Removes the specified item from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + + + + + + A mesage template + + + + The original template string. + This is the key passed to structured targets. + + + The list of literal parts, useful for string rendering. + It indicates the number of characters from the original string to print, + then there's a hole with how many chars to skip. + + "Hello {firstName} {lastName}!" + ------------------------------------- + â•‘P |S â•‘P|S â•‘P|Sâ•‘ + â•‘6 |11 â•‘1|10 â•‘1|0â•‘ + â•‘Hello |{firstName}â•‘ |{lastName}â•‘!â•‘ + + "{x} * 2 = {2x}" + -------------------- + â•‘P|S â•‘P |S â•‘ + â•‘0|3 â•‘7 |4 â•‘ + â•‘{x}â•‘ * 2 = |{2x}â•‘ + + The tricky part is escaped braces. They are represented by a skip = 0, + which is interpreted as "move one char forward, no hole". + + "Escaped }} is fun." + ---------------------- + â•‘P |Sâ•‘P |Sâ•‘ + â•‘9 |0â•‘8 |0â•‘ + â•‘Escaped }|}â•‘ is fun.|â•‘ + + + + This list of holes. It's used both to fill the string rendering + and to send values along the template to structured targets. + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Create a template, which is already parsed + + + + + + + + + Create a template, which is already parsed + + + + + + + + This is for testing only: recreates from the parsed data. + + + + This is for testing only: rebuilds the hole + + Add to this string builder + ref for performance + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Render templates + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + Do not fallback to StringBuilder.Format for positional templates. + The String Builder destination. + Parameters for the holes. + + + + Render a template to a string. + + The template. + The String Builder destination. + Culture. + Parameters for the holes. + Rendered template, never null. + + + + Convert Render or serialize a value, with optionnally backwardscompatible with + + + + Singleton + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serialising a scalar (string, int, NULL) or simple type (IFormattable) + + + + + + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + formatstring of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Nested Diagnostics Context - for log4net compatibility. + + This class marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top object off the NDC stack. The object is removed from the stack. + + The top object from the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all objects on the NDC stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + Mostly for compatibility with log4net. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Resets the stack to the original count during . + + + + + Initializes a new instance of the class. + + The stack. + The previous count. + + + + Reverts the stack to original item count. + + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwardscompatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the current scope, and returns its start time + + Scope Creation Time + + + + Peeks the first scope, and returns its start time + + Scope Creation Time + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + Override this to create the actual logging task + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Schedules the LogEventInfo for async writing + + The log event. + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation betweewn task-completion and timeout + + + + Creates new task to handle the writing of the input + + LogEvent to write + New Task created [true / false] + + + + Handles that scheduled task has completed (succesfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Writes log messages to the console with customizable coloring. + + Documentation on NLog Wiki + + + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified log event to the console highlighting entries + and words based on a set of defined rules. + + Log event. + + + + Color pair (foreground and background). + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the Console.Out or + Console.Error depending on the value of the Error flag. + + The logging event. + + Note that the Error option is not supported on .NET Compact Framework. + + + + + Write to output + + text to be written. + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + Access this property will compile the Regex. + + + + Get regex options. + + Default option to start with. + + + + + Get Expression for a . + + + + + + Replace regex result + + + + + + + Information about database command + parameters. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the type of the command. + + The type of the command. + + + + + Gets or sets the connection string to run the command against. If not provided, connection string from the target is used. + + + + + + Gets or sets the command text. + + + + + + Gets or sets a value indicating whether to ignore failures. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Represents a parameter to a Database target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the parameter. + The parameter layout. + + + + Gets or sets the database parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Gets or sets the database parameter size. + + + + + + Gets or sets the database parameter precision. + + + + + + Gets or sets the database parameter scale. + + + + + + Writes log messages to the database using an ADO.NET provider. + + + - NETSTANDARD cannot load connectionstrings from .config + + Documentation on NLog Wiki + + + The configuration is dependent on the database type, because + there are differnet methods of specifying connection string, SQL + command and command parameters. + + MS SQL Server using System.Data.SqlClient: + + Oracle using System.Data.OracleClient: + + Oracle using System.Data.OleDBClient: + + To set up the log target programmatically use code like this (an equivalent of MSSQL configuration): + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the name of the database provider. + + + + The parameter name should be a provider invariant name as registered in machine.config or app.config. Common values are: + +
    +
  • System.Data.SqlClient - SQL Sever Client
  • +
  • System.Data.SqlServerCe.3.5 - SQL Sever Compact 3.5
  • +
  • System.Data.OracleClient - Oracle Client from Microsoft (deprecated in .NET Framework 4)
  • +
  • Oracle.DataAccess.Client - ODP.NET provider from Oracle
  • +
  • System.Data.SQLite - System.Data.SQLite driver for SQLite
  • +
  • Npgsql - Npgsql driver for PostgreSQL
  • +
  • MySql.Data.MySqlClient - MySQL Connector/Net
  • +
+ (Note that provider invariant names are not supported on .NET Compact Framework). + + Alternatively the parameter value can be be a fully qualified name of the provider + connection type (class implementing ) or one of the following tokens: + +
    +
  • sqlserver, mssql, microsoft or msde - SQL Server Data Provider
  • +
  • oledb - OLEDB Data Provider
  • +
  • odbc - ODBC Data Provider
  • +
+
+ +
+ + + Gets or sets the connection string. When provided, it overrides the values + specified in DBHost, DBUserName, DBPassword, DBDatabase. + + + + + + Gets or sets the connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. + + + + + + Gets the installation DDL commands. + + + + + + Gets the uninstallation DDL commands. + + + + + + Gets or sets a value indicating whether to keep the + database connection open between the log events. + + + + + + Obsolete - value will be ignored! The logging code always runs outside of transaction. + + Gets or sets a value indicating whether to use database transactions. + Some data providers require this. + + + + This option was removed in NLog 4.0 because the logging code always runs outside of transaction. + This ensures that the log gets written to the database if you rollback the main transaction because of an error and want to log the error. + + + + + Gets or sets the database host name. If the ConnectionString is not provided + this value will be used to construct the "Server=" part of the + connection string. + + + + + + Gets or sets the database user name. If the ConnectionString is not provided + this value will be used to construct the "User ID=" part of the + connection string. + + + + + + Gets or sets the database password. If the ConnectionString is not provided + this value will be used to construct the "Password=" part of the + connection string. + + + + + + Gets or sets the database name. If the ConnectionString is not provided + this value will be used to construct the "Database=" part of the + connection string. + + + + + + Gets or sets the text of the SQL command to be run on each log level. + + + Typically this is a SQL INSERT statement or a stored procedure call. + It should use the database-specific parameters (marked as @parameter + for SQL server or :parameter for Oracle, other data providers + have their own notation) and not the layout renderers, + because the latter is prone to SQL injection attacks. + The layout renderers should be specified as <parameter /> elements instead. + + + + + + Gets or sets the type of the SQL command to be run on each log level. + + + This specifies how the command text is interpreted, as "Text" (default) or as "StoredProcedure". + When using the value StoredProcedure, the commandText-property would + normally be the name of the stored procedure. TableDirect method is not supported in this context. + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a database named or positional parameter. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Set the to use it for opening connections to the database. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the database. It creates + a new database command, prepares parameters for it by calculating + layouts and executes the command. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Build the connectionstring from the properties. + + + Using at first, and falls back to the properties , + , and + + Event to render the layout inside the properties. + + + + + Adds the given list of DatabaseParameterInfo to the given IDbCommand after transforming them into IDbDataParameters. + + The IDbCommand to add parameters to + The list of DatabaseParameterInfo to transform into IDbDataParameters and to add to the IDbCommand + The log event to base the parameter's layout rendering on. + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the attached debugger. + + The logging event. + + + + Mock target - useful for testing. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + Increases the number of messages. + + The logging event. + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialisation options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized succesfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ascii characters be encoded + JSON escaped string + + + + Get properties, cached for a type + + + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The begging position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. When the number of archive files exceed the obsolete archives are deleted. + + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + + When the number of archive files exceed the obsolete archives are deleted. + + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. When the number of archive files + exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Determine if old archive files should be deleted. + + Maximum number of archive files that should be kept + when old archives should be deleted; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the + highest number. When the number of archive files exceed the obsolete + archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + Documentation on NLog Wiki + + + + Default clean up period of the initilized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + The maximum number of initialised files before clean up procedures are initiated, + to keep the number of initialised files to a minimum. Chose 25 to cater for monthly rolling of log-files. + + + + + This value disables file archiving based on the size. + + + + + Holds the initialised files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialised files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + Setting this property to True helps improve performance. + + + + + + Gets or sets the maximum number of log filenames that should be stored as existing. + + + The bigger this number is the longer it will take to write each log record. The smaller the number is + the higher the chance that the clean function will be run when no new files have been opened. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. If this number is negative the files are + not automatically closed after a period of inactivity. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. If this number is negative or zero + the files are not flushed by timer. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. + Choose: + + + Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. +

+ Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. +

+
+ +
+ + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicationg whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Returns estimated size for memory stream, based on events count and first event size in bytes. + + Count of events + Bytes count of first event + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occuring day of the week to return a DateTime for. + The DateTime of the next occuring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + Filename to archive. If null, then nothing to archive. + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialise a file to be used by the instance. Based on the number of initialised + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Invokes the archiving and clean up of older archive file based on the values of and properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formating and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Interface for serialization of values, maybe even objects to JSON format. + Useful for wrappers for existing serializers. + + + + + Returns a serialization of an object + into JSON format. + + The object to serialize to JSON. + Serialized value (null = Serialize failed). + + + + Options for JSON serialisation + + + + + Add quotes arround object keys? + + + + + Formatprovider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + Initializes a new instance of the class. + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms + and data structures like a hash table. + + + + + Determines whether the specified is + equal to this instance. + + The to compare with + this instance. + + Value of true if the specified + is equal to this instance; otherwise, false. + + + The parameter is null. + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + + true if this converter can perform the conversion; otherwise, false. + + An that provides a format context. A that represents the type you want to convert from. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + + An that represents the converted value. + + An that provides a format context. The to use as the current culture. The to convert. The conversion cannot be performed. + + + + Sends log messages by email using SMTP protocol. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinit waiting + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Renders an array logging events. + + Array of logging events. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mailmessage + + event for rendering layouts + string to group on + + + + Append rendered layout to the stringbuilder + + append to this + event for rendering + append if not null + + + + Create the mailmessage with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to an ArrayList in memory for programmatic retrieval. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + Initializes the target. + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will be very slow. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6) (not supported on Windows Phone 7.0)
  • +
  • tcp4://host:port - force TCP/IPv4 (not supported on Windows Phone 7.0)
  • +
  • tcp6://host:port - force TCP/IPv6 (not supported on Windows Phone 7.0)
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6, not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp4://host:port - force UDP/IPv4 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp6://host:port - force UDP/IPv6 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). + + + + + + Gets or sets the maximum current connections. 0 = no maximum. + + + + + + Gets or sets the action that should be taken if the will be more connections than . + + + + + + Gets or sets the maximum queue size. + + + + + + Gets or sets the action that should be taken if the message is larger than + maxMessageSize. + + + + + + Gets or sets the encoding to be used. + + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + The action to be taken when there are more connections then the max. + + + + + Just allow it. + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. + + + + + Discard the entire message. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Sends log messages to the remote instance of NLog Viewer. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include stack contents. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Outputs log messages through the OutputDebugString() Win32 API. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Outputs the rendered logging event through the OutputDebugString() Win32 API. + + The logging event. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Can be used if has been enabled. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Closes the target and releases any unmanaged resources. + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + NOTE! Obsolete, instead override WriteAsyncThreadSafe(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target, in a thread safe manner. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the event info in layout. + + The layout. + The event info. + String representing log event. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Marks class as a logging target and assigns a name to it. + + This attribute is not required when registering the target in the API. + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + Represents target that supports context capture using MDLC, MDC, NDLC and NDC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of MDC context + + + Internal Layout that allows capture of NDC context + + + Internal Layout that allows capture of MDLC context + + + Internal Layout that allows capture of NDLC context + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the layout used to format log messages. + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the text to be rendered. + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Always use independent of + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + + + Write from input to output. Fix the UTF-8 bom + + + + + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued (-1 means everything). + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides asynchronous, buffered execution of target writes. + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queueing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the limit of full s to write before yielding into + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent statisfies the . + If condition isn't set, flushes on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes the target. + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The aciton to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target. + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Writes logging event to the log target. + + Logging event to be written out. + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + The method remembers the last-known-successful target + and starts the iteration from it. + If is set, the method + resets the target to the first target + stored in . + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + Limits the number of messages written per timespan to the wrapped target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the DateTime when the current will be reset. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Sends log messages to a randomly selected target. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the time source. + +
+
diff --git a/MTC_Adapter/packages/NLog.4.5.11/lib/sl4/NLog.xml b/MTC_Adapter/packages/NLog.4.5.11/lib/sl4/NLog.xml new file mode 100644 index 0000000..46eaa27 --- /dev/null +++ b/MTC_Adapter/packages/NLog.4.5.11/lib/sl4/NLog.xml @@ -0,0 +1,19755 @@ + + + + NLog + + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + internal class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + internal class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + internal class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + internal class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without wating) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + A value of true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + String Conversion Helpers + + + + + Converts input string value into + + Input value + Output value + Default value + Returns failure if the input value could not be parsed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + NLog internal logger. + + Writes to file, console or custom textwriter (see ) + + + Don't use as that can lead to recursive calls - stackoverflows + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Initializes static members of the InternalLogger class. + + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled. + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the number of items in the array. + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Base class for representing nodes in condition expression trees. + + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + Returns a string representation of this expression. + + String literal in single quotes. + + + + Evaluates the expression by calculating the value + of the layout in the specified evaluation context. + + Evaluation context. + The value of the layout. + + + + Condition level expression (represented by the level keyword). + + + + + Returns a string representation of the expression. + + The 'level' string. + + + + Evaluates to the current log level. + + Evaluation context. Ignored. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + Returns a string representation of the expression. + + The literal value. + + + + Evaluates the expression. + + Evaluation context. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + Returns a string representation of this expression. + + A logger string. + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + Returns a string representation of this expression. + + The 'message' string. + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters. + + The method parameters. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Marks the class as containing condition methods. + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparision, e.g. parse a string to int. + + + + + + + Promoto to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparision. + + + index, 0 to maxint. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properies are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + New event args + + + + + + The assembly that is trying to load. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwardscomp. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Legacy interface, no longer used by the NLog engine + + + + + Gets or sets the JSON serializer to use with or + + + + + Gets or sets the string serializer to use with + + + + + Perform mesage template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in NLog.Extended.dll using late-bound types, so that we don't need a reference to NLog.Extended.dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Format of the excpetion output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + Registers a single type definition. + + The item name. + The type of the item. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Creates an item instance. + + The name of the item. + Created item. + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during installation/uninstallations. + + Log event info object. + + + + Keeps logging configuration and provides simple API + to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Variables defined in xml or in API. name is case case insensitive. + + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete on NLog 4.1 and it may be removed in a future release. + + + + Gets the variables defined in the configuration. + + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Compare objects based on their name. + + This property is use to cache the comparer object. + + + + Defines methods to support the comparison of objects for equality based on their name. + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for alle loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Flushes any pending log messages on all appenders. + + The asynchronous continuation. + + + + Validates the configuration. + + + + + Copies all variables from provided dictionary into current configuration variables. + + Master variables dictionary + + + + Replace a simple variable with a value. The orginal value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the new configuration + + The new configuration. + + + + Gets the old configuration + + The old configuration. + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or see cref="EnableLoggingForLevels"/> to enable logging. + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Target to be written to when the rule matches. + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + + Gets or sets logger name pattern. + + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends but not anywhere else. + + + + + Gets the collection of log levels enabled by this rule. + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to de disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + >Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + A that represents the current . + + + + + Checks whether te particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Factory for locating methods. + + The type of the class marker attribute. + The type of the method marker attribute. + + + + Gets a collection of all registered items in the factory. + + + Sequence of key/value pairs where each key represents the name + of the item and value is the of + the item. + + + + + Scans the assembly for classes marked with + and methods marked with and adds them + to the factory. + + The types to scan. + The prefix to use for names. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a simple name to an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The name of the item. + + + + Gets the name of the item. + + The name of the item. + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The input URI. + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Prevents a default instance of the class from being created. + + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Last error occured during configuration read + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Gets the required attribute. + + Name of the attribute. + Attribute value. + Throws if the attribute is not specified. + + + + Gets the optional boolean attribute value. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional boolean attribute value. If whitespace, then returning null. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional attribute value. + + Name of the attribute. + The default value. + Value of the attribute or default value. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Returns all parsing errors from current and all child elements. + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + Stack trace should not be captured. + + + + + Stack trace should be captured without source-level information. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Remove all spaces, also in between text. + + text + text without spaces + Tabs and other whitespace is not removed! + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Checks whether any error during XML configuration parsing has occured. + If there are any and ThrowConfigExceptions or ThrowExceptions + setting is enabled - throws NLogConfigurationException, otherwise + just write an internal log at Warn level. + + Root NLog configuration xml element + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + Rules are added to this parameter. + + + + Split list on comma, trim items + + + no empty items + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language + described here. + + + + + Gets or sets the condition expression. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Can be used if has been enabled. + + + + + Constructor + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Global Diagnostics Context - used for log4net compatibility. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Include context properties + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Provides logging interface and utility functions. + + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Extensions for NLog . + + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Provides untyped IDictionary interface on top of generic IDictionary. + + The type of the key. + The type of the value. + + + + Initializes a new instance of the DictionaryAdapter class. + + The implementation. + + + + Gets an object containing the values in the object. + + + + An object containing the values in the object. + + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + + Gets an object containing the keys of the object. + + + + An object containing the keys of the object. + + + + + Gets or sets the with the specified key. + + Dictionary key. + Value corresponding to key or null if not found + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + + Removes all elements from the object. + + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + True if the contains an element with the key; otherwise, false. + + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Wrapper IDictionaryEnumerator. + + + + + Initializes a new instance of the class. + + The wrapped. + + + + Gets both the key and the value of the current dictionary entry. + + + + A containing both the key and the value of the current dictionary entry. + + + + + Gets the key of the current dictionary entry. + + + + The key of the current element of the enumeration. + + + + + Gets the value of the current dictionary entry. + + + + The value of the current element of the enumeration. + + + + + Gets the current element in the collection. + + + + The current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + + True if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Object construction helper. + + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Interface for fakeable the current . Not fully implemented, please methods/properties as necessary. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appeander is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Closes this instance of the appender. + + + + + Flushes this current appender. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Factory class which creates objects. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialisation as it is an + intenal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + Thrown when is called on an Empty instance. + + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialised before the supplied time. + + The time which prior the appenders considered expired + + + + Fluch all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Should archive mutex be created? + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + An immutable object that stores basic file info. + + + + + Constructs a FileCharacteristics object. + + The time the file was created in UTC. + The time the file was last written to in UTC. + The size of the file in bytes. + + + + The time the file was created in UTC. + + + + + The time the file was last written to in UTC. + + + + + The size of the file in bytes. + + + + + Optimized routines to get the basic file characteristics of the specified file. + + + + + Initializes static members of the FileCharacteristicsHelper class. + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Format a log message + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Render the event info as parse as short + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as int + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as bool + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Logger configuration. + + + + + Initializes a new instance of the class. + + The targets by level. + Use the old exception log handling of NLog 3.0? + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete before NLog 4.3.11 and it will be removed in NLog 5. + + + + Gets targets for the specified level. + + The level. + Chain of targets with attached filters. + + + + Determines whether the specified level is enabled. + + The level. + + A value of true if the specified level is enabled; otherwise, false. + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes a continuation. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Performs sender-specific initialization. + + + + + Performs sender-specific close operation. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Parses the URI into an endpoint address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + Creates a new instance of the network sender based on a network URL:. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + /// + A newly created network sender. + + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Sends the specified text over the connected socket. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is a desktop version of Windows. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Portable implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Is this a property of the message? + + + + + + + Value of the property + Is this a property of the message? + + + + The properties of the logEvent + + + + + The properties extracted from the message + + + + + Injects the list of message-template-parameter into the IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The initially empty dictionary + Message-template-parameters was inserted into dictionary without trouble (true/false) + + + + Attempt to override the existing dictionary values using the message-template-parameters + + Message-template-parameters + The already filled dictionary + List of unique message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Is the property of array-type? + + Type which has the property + name of the property. + + + + + Get propertyinfo + + object which could have property + propertyname on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: http://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + Empty handle when is disabled + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Any operating system. + + + + + Unix/Linux operating systems. + + + + + Windows CE. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Unknown operating system. + + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid asssembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + formatstring. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Apend a int type (byte, int) as string + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Split a string + + + + + Split string with escape. The escape char is the same as the splitchar + + + split char. escaped also with this char + + + + + Split string with escape + + + + + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + cached result as calculating is expensive. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Helper for dealing with thread-local storage. + + + + + Allocates the data slot for storing thread-local information. + + Allocated slot key. + + + + Gets the data for a slot in thread-local storage. + + Type of the data. + The slot to get data for. + Automatically create the object if it doesn't exist. + + Slot data (will create T if null). + + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Renders all log event's properties and appends them to the specified . + + The to append the rendered data to. + Logging event. + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + Initializes a new instance of the class. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + - Silverlight: Value for is always returned. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders an assembly version and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets additional version information. + + + + + The current application domain's base directory. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with with the base directory. + + + + + + Renders the application base directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site (class name, method name and source information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A counter value (increases on each layout rendering). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + Renders the specified counter value and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + Renders the current directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current date and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + URI of the HTML page which hosts the current Silverlight application. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the name of the item. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. See . + + + + + Log event context data with default options. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + Renders the specified exception information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + + + Find name of method on stracktrace. + + Full stracktrace + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + Renders the contents of the specified file and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Create a new. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the garbage collector. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Global Diagnostics Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified Global Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Globally-unique identifier (GUID). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + Renders a newly generated GUID string and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + Renders the specified installation parameter and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a , needed for date and number formats + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent and the current configuration. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Marks class as a layout renderer and assigns a name to it. + + This attribute is not required when registering the layout in the API. + + + + Initializes a new instance of the class. + + Name of the layout renderer, without the `${ }` + + + + Format of the ${level} layout renderer output. + + + + + Render the full level name. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Renders the current log level and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes the layout renderer. + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the XML logging event and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Renders the logger name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the date in the long format (yyyy-MM-dd HH:mm:ss.ffff) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + Renders the log message including any positional parameters and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Nested Diagnostic Context item. Provided for compatibility with log4net. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + Renders the specified Nested Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A newline literal. + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders the current process running time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + + + + The sequence ID + + + + + Renders the current log sequence ID and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current short date string (yyyy-MM-dd) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Information about Silverlight application. + + + + + Initializes a new instance of the class. + + + + + Gets or sets specific information to display. + + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Specifies application information to display in ${sl-appinfo} renderer. + + + + + URI of the current application XAP file. + + + + + Whether application is running out-of-browser. + + + + + Installed state of an application. + + + + + Whether application is running with elevated permissions. + + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current thread. + + + + + Renders the current thread identifier and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The name of the current thread. + + + + + Renders the current thread name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The Ticks value of current date and time. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders time in the 24-h format (HH:mm:ss.mmm) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render a NLog variable (xml or config) + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Initializes the layout renderer. + + + + + Try get the + + + + + + + Renders the specified variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply JSON encoding. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + RegistryLayoutRenderer + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Initializes the layout renderer. + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See http://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Trims the whitespace from the result of another layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + Renders the inner message, processes it and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + + Output to be transform. + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply XML encoding. + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Padded and trimmed string. + + + + A layout containing one or more nested layouts. + + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + Initializes the layout. + + + + + Formats the log event relying on inner layouts. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event relying on inner layouts. + + The logging event. + for the result + + + + Closes the layout. + + + + + Generate description of Compound Layout + + Compound Layout String Description + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + If is set, then the header generation with columnnames will be disabled. + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + Initializes the layout. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event for write. + + The logging event. + for the result + + + + Get the headers with the column names. + + + + + + Render 1 columnvalue (text or header) to + + write-to + current col index + col text + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Generate description of CSV Layout + + CSV Layout String Description + + + + Specifies CSV quoting modes. + + + + + Quote all column. + + + + + Quote nothing. + + + + + Quote only whose values contain the quote symbol or + the separator. + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Formats the log event as a JSON document for writing. + + The logging event. + for the result + + + + Formats the log event as a JSON document for writing. + + The log event to be formatted. + A JSON string representation of the log event. + + + + Generate description of JSON Layout + + JSON Layout String Description + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doens't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders the event info in layout. + + The event info. + String representing log event. + + + + Optimized version of for internal Layouts. Works best + when override of is available. + + The event info. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + StringBuilder to help minimize allocations [optional]. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Marks class as a layout renderer and assigns a format string to it. + + + + + Initializes a new instance of the class. + + Layout name. + + + + Parses layout strings. + + + + + Add to + + + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result. + + + + A specialized layout that renders Log4j-compatible XML events. + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Represents a string with embedded placeholders that can render contextual information. + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Returns a that represents the current object. + + + A that represents the current object. + + + + + Initializes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + for the result + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets the logger short name. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Gets the dictionary of per-event context properties. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + The exception. + Instance of . + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Set the + + true = Always, false = Never, null = Auto Detect + + + + Specialized LogFactory that can return instances of custom logger types. + + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the name of the current class and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. After setting this property all + existing loggers will be re-configured, so there is no need to call + manually. + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets the logger with the name of the current class. + + The logger with type . + Type of the logger + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The type of the logger to create. The type must inherit from + The logger of type . + This is a slow-running method. Make sure you are not calling this method in a + loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. Use to pass the type of the needed Logger. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Returns if logging is currently enabled. + + A value of if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Currently this logfactory is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Gets the filter result. + + The filter chain. + The log event. + The result of the filter. + + + + Defines available log levels. + + + + + Trace log level. + + + + + Debug log level. + + + + + Info log level. + + + + + Warn log level. + + + + + Error log level. + + + + + Fatal log level. + + + + + Off log level. + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + + The object object. + + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Delegate used to set/get the culture in use. + + This delegate marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. + + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture to use. + + This property was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The logger class. The class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. Use to pass the type of the needed Logger. + + Name of the logger. + The logger class. The class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + An object that implements IDisposable whose Dispose() method reenables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Checks if logging is currently enabled. + + if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + Service contract for Log Receiver client. + + This class marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Client of ILogReceiverServer + + + + + Occurs when the log message processing has completed. + + + + + Occurs when Open operation has completed. + + + + + Occurs when Close operation has completed. + + + + + Enables the user to configure client and service credentials as well as service credential authentication settings for use on the client side of communication. + + + + + Gets the underlying implementation. + + + + + Gets the target endpoint for the service to which the WCF client can connect. + + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Closes the client asynchronously. + + User-specific state. + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Gets or sets the cookie container. + + The cookie container. + + + + Internal configuration of Log Receiver Service contracts. + + + + + Wire format for NLog Event. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the client-generated identifier of the event. + + + + + Gets or sets the ordinal of the log level. + + + + + Gets or sets the logger ordinal (index into . + + The logger ordinal. + + + + Gets or sets the time delta (in ticks) between the time of the event and base time. + + + + + Gets or sets the message string index. + + + + + Gets or sets the collection of layout values. + + + + + Gets the collection of indexes into array for each layout value. + + + + + Converts the to . + + The object this is part of.. + The logger name prefix to prepend in front of the logger name. + Converted . + + + + Wire format for NLog event package. + + + + + Gets or sets the name of the client. + + The name of the client. + + + + Gets or sets the base time (UTC ticks) for all events in the package. + + The base time UTC. + + + + Gets or sets the collection of layout names which are shared among all events. + + The layout names. + + + + Gets or sets the collection of logger names. + + The logger names. + + + + Gets or sets the list of events. + + The events. + + + + Converts the events to sequence of objects suitable for routing through NLog. + + The logger name prefix to prepend in front of each logger name. + + Sequence of objects. + + + + + Converts the events to sequence of objects suitable for routing through NLog. + + + Sequence of objects. + + + + + List of strings annotated for more terse serialization. + + + + + Initializes a new instance of the class. + + + + + Log Receiver Client using WCF. + + + This class marked as obsolete before NLog 4.3.11 and it will be removed in a future release. + + It provides an implementation of the legacy interface and it will be completely obsolete when the + ILogReceiverClient is removed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Returns a new channel from the client to the service. + + + A channel of type that identifies the type + of service contract encapsulated by this client object (proxy). + + + + + Log Receiver Client facade. It allows the use either of the one way or two way + service contract using WCF through its unified interface. + + + Delegating methods are generated with Resharper. + 1. change ProxiedClient to private field (instead of public property) + 2. delegate members + 3. change ProxiedClient back to public property. + + + + + + The client getting proxied + + + + + Do we use one-way or two-way messaging? + + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + The binding. + The remote address. + + + + Causes a communication object to transition immediately from its current state into the closed state. + + + + + Begins an asynchronous operation to close a communication object. + + + The that references the asynchronous close operation. + + The delegate that receives notification of the completion of the asynchronous close operation.An object, specified by the application, that contains state information associated with the asynchronous close operation. was called on an object in the state.The default timeout elapsed before the was able to close gracefully. + + + + Begins an asynchronous operation to close a communication object with a specified timeout. + + + The that references the asynchronous close operation. + + The that specifies how long the send operation has to complete before timing out.The delegate that receives notification of the completion of the asynchronous close operation.An object, specified by the application, that contains state information associated with the asynchronous close operation. was called on an object in the state.The specified timeout elapsed before the was able to close gracefully. + + + + Begins an asynchronous operation to open a communication object. + + + The that references the asynchronous open operation. + + The delegate that receives notification of the completion of the asynchronous open operation.An object, specified by the application, that contains state information associated with the asynchronous open operation.The was unable to be opened and has entered the state.The default open timeout elapsed before the was able to enter the state and has entered the state. + + + + Begins an asynchronous operation to open a communication object within a specified interval of time. + + + The that references the asynchronous open operation. + + The that specifies how long the send operation has to complete before timing out.The delegate that receives notification of the completion of the asynchronous open operation.An object, specified by the application, that contains state information associated with the asynchronous open operation.The was unable to be opened and has entered the state.The specified timeout elapsed before the was able to enter the state and has entered the state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Enables the user to configure client and service credentials as well as service credential authentication settings for use on the client side of communication. + + + + + Causes a communication object to transition from its current state into the closed state. + + The that specifies how long the send operation has to complete before timing out. was called on an object in the state.The timeout elapsed before the was able to close gracefully. + + + + Causes a communication object to transition from its current state into the closed state. + + was called on an object in the state.The default close timeout elapsed before the was able to close gracefully. + + + + Closes the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Occurs when Close operation has completed. + + + + + Occurs when the communication object completes its transition from the closing state into the closed state. + + + + + Occurs when the communication object first enters the closing state. + + + + + Gets or sets the cookie container. + + The cookie container. + + + + Completes an asynchronous operation to close a communication object. + + The that is returned by a call to the method. was called on an object in the state.The timeout elapsed before the was able to close gracefully. + + + + Completes an asynchronous operation to open a communication object. + + The that is returned by a call to the method.The was unable to be opened and has entered the state.The timeout elapsed before the was able to enter the state and has entered the state. + + + + Gets the target endpoint for the service to which the WCF client can connect. + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Occurs when the communication object first enters the faulted state. + + + + + Gets the underlying implementation. + + + + + Causes a communication object to transition from the created state into the opened state. + + The was unable to be opened and has entered the state.The default open timeout elapsed before the was able to enter the state and has entered the state. + + + + Causes a communication object to transition from the created state into the opened state within a specified interval of time. + + The that specifies how long the send operation has to complete before timing out.The was unable to be opened and has entered the state.The specified timeout elapsed before the was able to enter the state and has entered the state. + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Occurs when Open operation has completed. + + + + + Occurs when the communication object completes its transition from the opening state into the opened state. + + + + + Occurs when the communication object first enters the opening state. + + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Occurs when the log message processing has completed. + + + + + Gets the current state of the communication-oriented object. + + + The value of the of the object. + + + + + Causes a communication object to transition from its current state into the closed state. + + + + + Abstract base class for the WcfLogReceiverXXXWay classes. It can only be + used internally (see internal constructor). It passes off any Channel usage + to the inheriting class. + + Type of the WCF service. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Occurs when the log message processing has completed. + + + + + Occurs when Open operation has completed. + + + + + Occurs when Close operation has completed. + + + + + Gets or sets the cookie container. + + The cookie container. + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Closes the client asynchronously. + + User-specific state. + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Log Receiver Client using WCF. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Returns a new channel from the client to the service. + + + A channel of type that identifies the type + of service contract encapsulated by this client object (proxy). + + + + + Log Receiver Client using WCF. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Returns a new channel from the client to the service. + + + A channel of type that identifies the type + of service contract encapsulated by this client object (proxy). + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + Mostly for compatibility with log4net. + + + + + + + + + + Gets the thread-local dictionary + + Must be true for any subsequent dictionary modification operation + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mapped Diagnostics Context - used for log4net compatibility. + + This class marked as obsolete before NLog 2.0 and it may be removed in a future release. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified item exists in current thread MDC. + + + + Removes the specified item from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + + + + + + A mesage template + + + + The original template string. + This is the key passed to structured targets. + + + The list of literal parts, useful for string rendering. + It indicates the number of characters from the original string to print, + then there's a hole with how many chars to skip. + + "Hello {firstName} {lastName}!" + ------------------------------------- + â•‘P |S â•‘P|S â•‘P|Sâ•‘ + â•‘6 |11 â•‘1|10 â•‘1|0â•‘ + â•‘Hello |{firstName}â•‘ |{lastName}â•‘!â•‘ + + "{x} * 2 = {2x}" + -------------------- + â•‘P|S â•‘P |S â•‘ + â•‘0|3 â•‘7 |4 â•‘ + â•‘{x}â•‘ * 2 = |{2x}â•‘ + + The tricky part is escaped braces. They are represented by a skip = 0, + which is interpreted as "move one char forward, no hole". + + "Escaped }} is fun." + ---------------------- + â•‘P |Sâ•‘P |Sâ•‘ + â•‘9 |0â•‘8 |0â•‘ + â•‘Escaped }|}â•‘ is fun.|â•‘ + + + + This list of holes. It's used both to fill the string rendering + and to send values along the template to structured targets. + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Create a template, which is already parsed + + + + + + + + + Create a template, which is already parsed + + + + + + + + This is for testing only: recreates from the parsed data. + + + + This is for testing only: rebuilds the hole + + Add to this string builder + ref for performance + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Render templates + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + Do not fallback to StringBuilder.Format for positional templates. + The String Builder destination. + Parameters for the holes. + + + + Render a template to a string. + + The template. + The String Builder destination. + Culture. + Parameters for the holes. + Rendered template, never null. + + + + Convert Render or serialize a value, with optionnally backwardscompatible with + + + + Singleton + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serialising a scalar (string, int, NULL) or simple type (IFormattable) + + + + + + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + formatstring of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Nested Diagnostics Context - for log4net compatibility. + + This class marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top object off the NDC stack. The object is removed from the stack. + + The top object from the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all objects on the NDC stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + Mostly for compatibility with log4net. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Resets the stack to the original count during . + + + + + Initializes a new instance of the class. + + The stack. + The previous count. + + + + Reverts the stack to original item count. + + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Writes log messages to the console. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the Console.Out or + Console.Error depending on the value of the Error flag. + + The logging event. + + Note that the Error option is not supported on .NET Compact Framework. + + + + + Write to output + + text to be written. + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the attached debugger. + + The logging event. + + + + Mock target - useful for testing. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + Increases the number of messages. + + The logging event. + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialisation options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized succesfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ascii characters be encoded + JSON escaped string + + + + Get properties, cached for a type + + + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The begging position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. When the number of archive files exceed the obsolete archives are deleted. + + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + + When the number of archive files exceed the obsolete archives are deleted. + + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. When the number of archive files + exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Determine if old archive files should be deleted. + + Maximum number of archive files that should be kept + when old archives should be deleted; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the + highest number. When the number of archive files exceed the obsolete + archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + Documentation on NLog Wiki + + + + Default clean up period of the initilized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + The maximum number of initialised files before clean up procedures are initiated, + to keep the number of initialised files to a minimum. Chose 25 to cater for monthly rolling of log-files. + + + + + This value disables file archiving based on the size. + + + + + Holds the initialised files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialised files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + Setting this property to True helps improve performance. + + + + + + Gets or sets the maximum number of log filenames that should be stored as existing. + + + The bigger this number is the longer it will take to write each log record. The smaller the number is + the higher the chance that the clean function will be run when no new files have been opened. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. If this number is negative the files are + not automatically closed after a period of inactivity. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. If this number is negative or zero + the files are not flushed by timer. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. + Choose: + + + Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. +

+ Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. +

+
+ +
+ + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Returns estimated size for memory stream, based on events count and first event size in bytes. + + Count of events + Bytes count of first event + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occuring day of the week to return a DateTime for. + The DateTime of the next occuring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + Filename to archive. If null, then nothing to archive. + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialise a file to be used by the instance. Based on the number of initialised + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Invokes the archiving and clean up of older archive file based on the values of and properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formating and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Interface for serialization of values, maybe even objects to JSON format. + Useful for wrappers for existing serializers. + + + + + Returns a serialization of an object + into JSON format. + + The object to serialize to JSON. + Serialized value (null = Serialize failed). + + + + Options for JSON serialisation + + + + + Add quotes arround object keys? + + + + + Formatprovider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + Initializes a new instance of the class. + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms + and data structures like a hash table. + + + + + Determines whether the specified is + equal to this instance. + + The to compare with + this instance. + + Value of true if the specified + is equal to this instance; otherwise, false. + + + The parameter is null. + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + + true if this converter can perform the conversion; otherwise, false. + + An that provides a format context. A that represents the type you want to convert from. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + + An that represents the converted value. + + An that provides a format context. The to use as the current culture. The to convert. The conversion cannot be performed. + + + + Sends log messages to a NLog Receiver Service (using WCF or Web Services). + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the endpoint address. + + The endpoint address. + + + + + Gets or sets the name of the endpoint configuration in WCF configuration file. + + The name of the endpoint configuration. + + + + + Gets or sets a value indicating whether to use binary message encoding. + + + + + + Gets or sets a value indicating whether to use a WCF service contract that is one way (fire and forget) or two way (request-reply) + + + + + + Gets or sets the client ID. + + The client ID. + + + + + Gets the list of parameters. + + The parameters. + + + + + Gets or sets a value indicating whether to include per-event properties in the payload sent to the server. + + + + + + Called when log events are being sent (test hook). + + The events. + The async continuations. + True if events should be sent, false to stop processing them. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Append" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Add value to the , returns ordinal in + + + lookup so only unique items will be added to + value to add + + + + + Creating a new instance of WcfLogReceiverClient + + Inheritors can override this method and provide their own + service configuration - binding and endpoint address + + This method marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creating a new instance of IWcfLogReceiverClient + + Inheritors can override this method and provide their own + service configuration - binding and endpoint address + + + virtual is used by endusers + + + + Writes log messages to an ArrayList in memory for programmatic retrieval. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + Initializes the target. + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will be very slow. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6) (not supported on Windows Phone 7.0)
  • +
  • tcp4://host:port - force TCP/IPv4 (not supported on Windows Phone 7.0)
  • +
  • tcp6://host:port - force TCP/IPv6 (not supported on Windows Phone 7.0)
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6, not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp4://host:port - force UDP/IPv4 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp6://host:port - force UDP/IPv6 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). + + + + + + Gets or sets the maximum current connections. 0 = no maximum. + + + + + + Gets or sets the action that should be taken if the will be more connections than . + + + + + + Gets or sets the maximum queue size. + + + + + + Gets or sets the action that should be taken if the message is larger than + maxMessageSize. + + + + + + Gets or sets the encoding to be used. + + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + The action to be taken when there are more connections then the max. + + + + + Just allow it. + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. + + + + + Discard the entire message. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Sends log messages to the remote instance of NLog Viewer. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include stack contents. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Outputs log messages through the OutputDebugString() Win32 API. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Outputs the rendered logging event through the OutputDebugString() Win32 API. + + The logging event. + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Can be used if has been enabled. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Closes the target and releases any unmanaged resources. + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + NOTE! Obsolete, instead override WriteAsyncThreadSafe(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target, in a thread safe manner. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the event info in layout. + + The layout. + The event info. + String representing log event. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Marks class as a logging target and assigns a name to it. + + This attribute is not required when registering the target in the API. + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + Represents target that supports context capture using MDLC, MDC, NDLC and NDC + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of MDC context + + + Internal Layout that allows capture of NDC context + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the layout used to format log messages. + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the text to be rendered. + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + + + Write from input to output. Fix the UTF-8 bom + + + + + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued (-1 means everything). + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides asynchronous, buffered execution of target writes. + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queueing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the limit of full s to write before yielding into + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent statisfies the . + If condition isn't set, flushes on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes the target. + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The aciton to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target. + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Writes logging event to the log target. + + Logging event to be written out. + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + The method remembers the last-known-successful target + and starts the iteration from it. + If is set, the method + resets the target to the first target + stored in . + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + Limits the number of messages written per timespan to the wrapped target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the DateTime when the current will be reset. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Sends log messages to a randomly selected target. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the time source. + + + + Define Localizable attribute for platforms that don't have it. + + + + + Initializes a new instance of the class. + + Determines whether the target is localizable. + + + + Gets or sets a value indicating whether the target is localizable. + + +
+
diff --git a/MTC_Adapter/packages/NLog.4.5.11/lib/sl5/NLog.xml b/MTC_Adapter/packages/NLog.4.5.11/lib/sl5/NLog.xml new file mode 100644 index 0000000..9af4cf6 --- /dev/null +++ b/MTC_Adapter/packages/NLog.4.5.11/lib/sl5/NLog.xml @@ -0,0 +1,19845 @@ + + + + NLog + + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + internal class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + internal class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + internal class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + internal class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without wating) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + A value of true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + String Conversion Helpers + + + + + Converts input string value into + + Input value + Output value + Default value + Returns failure if the input value could not be parsed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + NLog internal logger. + + Writes to file, console or custom textwriter (see ) + + + Don't use as that can lead to recursive calls - stackoverflows + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Initializes static members of the InternalLogger class. + + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled. + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the number of items in the array. + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Base class for representing nodes in condition expression trees. + + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + Returns a string representation of this expression. + + String literal in single quotes. + + + + Evaluates the expression by calculating the value + of the layout in the specified evaluation context. + + Evaluation context. + The value of the layout. + + + + Condition level expression (represented by the level keyword). + + + + + Returns a string representation of the expression. + + The 'level' string. + + + + Evaluates to the current log level. + + Evaluation context. Ignored. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + Returns a string representation of the expression. + + The literal value. + + + + Evaluates the expression. + + Evaluation context. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + Returns a string representation of this expression. + + A logger string. + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + Returns a string representation of this expression. + + The 'message' string. + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters. + + The method parameters. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Marks the class as containing condition methods. + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparision, e.g. parse a string to int. + + + + + + + Promoto to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparision. + + + index, 0 to maxint. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properies are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + New event args + + + + + + The assembly that is trying to load. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwardscomp. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Legacy interface, no longer used by the NLog engine + + + + + Gets or sets the JSON serializer to use with or + + + + + Gets or sets the string serializer to use with + + + + + Perform mesage template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in NLog.Extended.dll using late-bound types, so that we don't need a reference to NLog.Extended.dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Format of the excpetion output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + Registers a single type definition. + + The item name. + The type of the item. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Creates an item instance. + + The name of the item. + Created item. + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during installation/uninstallations. + + Log event info object. + + + + Keeps logging configuration and provides simple API + to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Variables defined in xml or in API. name is case case insensitive. + + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete on NLog 4.1 and it may be removed in a future release. + + + + Gets the variables defined in the configuration. + + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Compare objects based on their name. + + This property is use to cache the comparer object. + + + + Defines methods to support the comparison of objects for equality based on their name. + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for alle loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Flushes any pending log messages on all appenders. + + The asynchronous continuation. + + + + Validates the configuration. + + + + + Copies all variables from provided dictionary into current configuration variables. + + Master variables dictionary + + + + Replace a simple variable with a value. The orginal value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the new configuration + + The new configuration. + + + + Gets the old configuration + + The old configuration. + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or see cref="EnableLoggingForLevels"/> to enable logging. + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Target to be written to when the rule matches. + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + + Gets or sets logger name pattern. + + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends but not anywhere else. + + + + + Gets the collection of log levels enabled by this rule. + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to de disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + >Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + A that represents the current . + + + + + Checks whether te particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Factory for locating methods. + + The type of the class marker attribute. + The type of the method marker attribute. + + + + Gets a collection of all registered items in the factory. + + + Sequence of key/value pairs where each key represents the name + of the item and value is the of + the item. + + + + + Scans the assembly for classes marked with + and methods marked with and adds them + to the factory. + + The types to scan. + The prefix to use for names. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a simple name to an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The name of the item. + + + + Gets the name of the item. + + The name of the item. + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The input URI. + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Prevents a default instance of the class from being created. + + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Last error occured during configuration read + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Gets the required attribute. + + Name of the attribute. + Attribute value. + Throws if the attribute is not specified. + + + + Gets the optional boolean attribute value. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional boolean attribute value. If whitespace, then returning null. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional attribute value. + + Name of the attribute. + The default value. + Value of the attribute or default value. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Returns all parsing errors from current and all child elements. + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + Stack trace should not be captured. + + + + + Stack trace should be captured without source-level information. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Remove all spaces, also in between text. + + text + text without spaces + Tabs and other whitespace is not removed! + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Checks whether any error during XML configuration parsing has occured. + If there are any and ThrowConfigExceptions or ThrowExceptions + setting is enabled - throws NLogConfigurationException, otherwise + just write an internal log at Warn level. + + Root NLog configuration xml element + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + Rules are added to this parameter. + + + + Split list on comma, trim items + + + no empty items + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language + described here. + + + + + Gets or sets the condition expression. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Can be used if has been enabled. + + + + + Constructor + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Global Diagnostics Context - used for log4net compatibility. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Include context properties + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Provides logging interface and utility functions. + + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Extensions for NLog . + + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Provides untyped IDictionary interface on top of generic IDictionary. + + The type of the key. + The type of the value. + + + + Initializes a new instance of the DictionaryAdapter class. + + The implementation. + + + + Gets an object containing the values in the object. + + + + An object containing the values in the object. + + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + + Gets an object containing the keys of the object. + + + + An object containing the keys of the object. + + + + + Gets or sets the with the specified key. + + Dictionary key. + Value corresponding to key or null if not found + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + + Removes all elements from the object. + + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + True if the contains an element with the key; otherwise, false. + + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Wrapper IDictionaryEnumerator. + + + + + Initializes a new instance of the class. + + The wrapped. + + + + Gets both the key and the value of the current dictionary entry. + + + + A containing both the key and the value of the current dictionary entry. + + + + + Gets the key of the current dictionary entry. + + + + The key of the current element of the enumeration. + + + + + Gets the value of the current dictionary entry. + + + + The value of the current element of the enumeration. + + + + + Gets the current element in the collection. + + + + The current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + + True if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Object construction helper. + + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Interface for fakeable the current . Not fully implemented, please methods/properties as necessary. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appeander is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Closes this instance of the appender. + + + + + Flushes this current appender. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Factory class which creates objects. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialisation as it is an + intenal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + Thrown when is called on an Empty instance. + + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialised before the supplied time. + + The time which prior the appenders considered expired + + + + Fluch all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Should archive mutex be created? + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + An immutable object that stores basic file info. + + + + + Constructs a FileCharacteristics object. + + The time the file was created in UTC. + The time the file was last written to in UTC. + The size of the file in bytes. + + + + The time the file was created in UTC. + + + + + The time the file was last written to in UTC. + + + + + The size of the file in bytes. + + + + + Optimized routines to get the basic file characteristics of the specified file. + + + + + Initializes static members of the FileCharacteristicsHelper class. + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Format a log message + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Render the event info as parse as short + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as int + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as bool + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Logger configuration. + + + + + Initializes a new instance of the class. + + The targets by level. + Use the old exception log handling of NLog 3.0? + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete before NLog 4.3.11 and it will be removed in NLog 5. + + + + Gets targets for the specified level. + + The level. + Chain of targets with attached filters. + + + + Determines whether the specified level is enabled. + + The level. + + A value of true if the specified level is enabled; otherwise, false. + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes a continuation. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Performs sender-specific initialization. + + + + + Performs sender-specific close operation. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Parses the URI into an endpoint address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + Creates a new instance of the network sender based on a network URL:. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + /// + A newly created network sender. + + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Sends the specified text over the connected socket. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is a desktop version of Windows. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Portable implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Is this a property of the message? + + + + + + + Value of the property + Is this a property of the message? + + + + The properties of the logEvent + + + + + The properties extracted from the message + + + + + Injects the list of message-template-parameter into the IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The initially empty dictionary + Message-template-parameters was inserted into dictionary without trouble (true/false) + + + + Attempt to override the existing dictionary values using the message-template-parameters + + Message-template-parameters + The already filled dictionary + List of unique message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Is the property of array-type? + + Type which has the property + name of the property. + + + + + Get propertyinfo + + object which could have property + propertyname on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: http://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + Empty handle when is disabled + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Any operating system. + + + + + Unix/Linux operating systems. + + + + + Windows CE. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Unknown operating system. + + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid asssembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + formatstring. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Apend a int type (byte, int) as string + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Split a string + + + + + Split string with escape. The escape char is the same as the splitchar + + + split char. escaped also with this char + + + + + Split string with escape + + + + + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + cached result as calculating is expensive. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Helper for dealing with thread-local storage. + + + + + Allocates the data slot for storing thread-local information. + + Allocated slot key. + + + + Gets the data for a slot in thread-local storage. + + Type of the data. + The slot to get data for. + Automatically create the object if it doesn't exist. + + Slot data (will create T if null). + + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Renders all log event's properties and appends them to the specified . + + The to append the rendered data to. + Logging event. + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + Initializes a new instance of the class. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + - Silverlight: Value for is always returned. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders an assembly version and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets additional version information. + + + + + The current application domain's base directory. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with with the base directory. + + + + + + Renders the application base directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site (class name, method name and source information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A counter value (increases on each layout rendering). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + Renders the specified counter value and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + Renders the current directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current date and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + URI of the HTML page which hosts the current Silverlight application. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the name of the item. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. See . + + + + + Log event context data with default options. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + Renders the specified exception information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + + + Find name of method on stracktrace. + + Full stracktrace + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + Renders the contents of the specified file and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Create a new. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the garbage collector. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Global Diagnostics Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified Global Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Globally-unique identifier (GUID). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + Renders a newly generated GUID string and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + Renders the specified installation parameter and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a , needed for date and number formats + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent and the current configuration. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Marks class as a layout renderer and assigns a name to it. + + This attribute is not required when registering the layout in the API. + + + + Initializes a new instance of the class. + + Name of the layout renderer, without the `${ }` + + + + Format of the ${level} layout renderer output. + + + + + Render the full level name. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Renders the current log level and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes the layout renderer. + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the XML logging event and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Renders the logger name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the date in the long format (yyyy-MM-dd HH:mm:ss.ffff) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + Renders the log message including any positional parameters and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Nested Diagnostic Context item. Provided for compatibility with log4net. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + Renders the specified Nested Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A newline literal. + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders the current process running time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + + + + The sequence ID + + + + + Renders the current log sequence ID and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current short date string (yyyy-MM-dd) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Information about Silverlight application. + + + + + Initializes a new instance of the class. + + + + + Gets or sets specific information to display. + + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Specifies application information to display in ${sl-appinfo} renderer. + + + + + URI of the current application XAP file. + + + + + Whether application is running out-of-browser. + + + + + Installed state of an application. + + + + + Whether application is running with elevated permissions. + + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current thread. + + + + + Renders the current thread identifier and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The name of the current thread. + + + + + Renders the current thread name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The Ticks value of current date and time. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders time in the 24-h format (HH:mm:ss.mmm) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render a NLog variable (xml or config) + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Initializes the layout renderer. + + + + + Try get the + + + + + + + Renders the specified variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply JSON encoding. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + RegistryLayoutRenderer + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Initializes the layout renderer. + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See http://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Trims the whitespace from the result of another layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + Renders the inner message, processes it and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + + Output to be transform. + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply XML encoding. + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Padded and trimmed string. + + + + A layout containing one or more nested layouts. + + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + Initializes the layout. + + + + + Formats the log event relying on inner layouts. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event relying on inner layouts. + + The logging event. + for the result + + + + Closes the layout. + + + + + Generate description of Compound Layout + + Compound Layout String Description + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + If is set, then the header generation with columnnames will be disabled. + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + Initializes the layout. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event for write. + + The logging event. + for the result + + + + Get the headers with the column names. + + + + + + Render 1 columnvalue (text or header) to + + write-to + current col index + col text + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Generate description of CSV Layout + + CSV Layout String Description + + + + Specifies CSV quoting modes. + + + + + Quote all column. + + + + + Quote nothing. + + + + + Quote only whose values contain the quote symbol or + the separator. + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Formats the log event as a JSON document for writing. + + The logging event. + for the result + + + + Formats the log event as a JSON document for writing. + + The log event to be formatted. + A JSON string representation of the log event. + + + + Generate description of JSON Layout + + JSON Layout String Description + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doens't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders the event info in layout. + + The event info. + String representing log event. + + + + Optimized version of for internal Layouts. Works best + when override of is available. + + The event info. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + StringBuilder to help minimize allocations [optional]. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Marks class as a layout renderer and assigns a format string to it. + + + + + Initializes a new instance of the class. + + Layout name. + + + + Parses layout strings. + + + + + Add to + + + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result. + + + + A specialized layout that renders Log4j-compatible XML events. + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Represents a string with embedded placeholders that can render contextual information. + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Returns a that represents the current object. + + + A that represents the current object. + + + + + Initializes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + for the result + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets the logger short name. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Gets the dictionary of per-event context properties. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + The exception. + Instance of . + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Set the + + true = Always, false = Never, null = Auto Detect + + + + Specialized LogFactory that can return instances of custom logger types. + + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the name of the current class and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. After setting this property all + existing loggers will be re-configured, so there is no need to call + manually. + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets the logger with the name of the current class. + + The logger with type . + Type of the logger + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The type of the logger to create. The type must inherit from + The logger of type . + This is a slow-running method. Make sure you are not calling this method in a + loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. Use to pass the type of the needed Logger. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Returns if logging is currently enabled. + + A value of if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Currently this logfactory is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Gets the filter result. + + The filter chain. + The log event. + The result of the filter. + + + + Defines available log levels. + + + + + Trace log level. + + + + + Debug log level. + + + + + Info log level. + + + + + Warn log level. + + + + + Error log level. + + + + + Fatal log level. + + + + + Off log level. + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + + The object object. + + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Delegate used to set/get the culture in use. + + This delegate marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. + + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture to use. + + This property was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The logger class. The class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. Use to pass the type of the needed Logger. + + Name of the logger. + The logger class. The class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + An object that implements IDisposable whose Dispose() method reenables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Checks if logging is currently enabled. + + if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + Service contract for Log Receiver client. + + This class marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Client of ILogReceiverServer + + + + + Occurs when the log message processing has completed. + + + + + Occurs when Open operation has completed. + + + + + Occurs when Close operation has completed. + + + + + Enables the user to configure client and service credentials as well as service credential authentication settings for use on the client side of communication. + + + + + Gets the underlying implementation. + + + + + Gets the target endpoint for the service to which the WCF client can connect. + + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Closes the client asynchronously. + + User-specific state. + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Gets or sets the cookie container. + + The cookie container. + + + + Internal configuration of Log Receiver Service contracts. + + + + + Wire format for NLog Event. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the client-generated identifier of the event. + + + + + Gets or sets the ordinal of the log level. + + + + + Gets or sets the logger ordinal (index into . + + The logger ordinal. + + + + Gets or sets the time delta (in ticks) between the time of the event and base time. + + + + + Gets or sets the message string index. + + + + + Gets or sets the collection of layout values. + + + + + Gets the collection of indexes into array for each layout value. + + + + + Converts the to . + + The object this is part of.. + The logger name prefix to prepend in front of the logger name. + Converted . + + + + Wire format for NLog event package. + + + + + Gets or sets the name of the client. + + The name of the client. + + + + Gets or sets the base time (UTC ticks) for all events in the package. + + The base time UTC. + + + + Gets or sets the collection of layout names which are shared among all events. + + The layout names. + + + + Gets or sets the collection of logger names. + + The logger names. + + + + Gets or sets the list of events. + + The events. + + + + Converts the events to sequence of objects suitable for routing through NLog. + + The logger name prefix to prepend in front of each logger name. + + Sequence of objects. + + + + + Converts the events to sequence of objects suitable for routing through NLog. + + + Sequence of objects. + + + + + List of strings annotated for more terse serialization. + + + + + Initializes a new instance of the class. + + + + + Log Receiver Client using WCF. + + + This class marked as obsolete before NLog 4.3.11 and it will be removed in a future release. + + It provides an implementation of the legacy interface and it will be completely obsolete when the + ILogReceiverClient is removed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Returns a new channel from the client to the service. + + + A channel of type that identifies the type + of service contract encapsulated by this client object (proxy). + + + + + Log Receiver Client facade. It allows the use either of the one way or two way + service contract using WCF through its unified interface. + + + Delegating methods are generated with Resharper. + 1. change ProxiedClient to private field (instead of public property) + 2. delegate members + 3. change ProxiedClient back to public property. + + + + + + The client getting proxied + + + + + Do we use one-way or two-way messaging? + + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Whether to use the one way or two way WCF client. + The binding. + The remote address. + + + + Causes a communication object to transition immediately from its current state into the closed state. + + + + + Begins an asynchronous operation to close a communication object. + + + The that references the asynchronous close operation. + + The delegate that receives notification of the completion of the asynchronous close operation.An object, specified by the application, that contains state information associated with the asynchronous close operation. was called on an object in the state.The default timeout elapsed before the was able to close gracefully. + + + + Begins an asynchronous operation to close a communication object with a specified timeout. + + + The that references the asynchronous close operation. + + The that specifies how long the send operation has to complete before timing out.The delegate that receives notification of the completion of the asynchronous close operation.An object, specified by the application, that contains state information associated with the asynchronous close operation. was called on an object in the state.The specified timeout elapsed before the was able to close gracefully. + + + + Begins an asynchronous operation to open a communication object. + + + The that references the asynchronous open operation. + + The delegate that receives notification of the completion of the asynchronous open operation.An object, specified by the application, that contains state information associated with the asynchronous open operation.The was unable to be opened and has entered the state.The default open timeout elapsed before the was able to enter the state and has entered the state. + + + + Begins an asynchronous operation to open a communication object within a specified interval of time. + + + The that references the asynchronous open operation. + + The that specifies how long the send operation has to complete before timing out.The delegate that receives notification of the completion of the asynchronous open operation.An object, specified by the application, that contains state information associated with the asynchronous open operation.The was unable to be opened and has entered the state.The specified timeout elapsed before the was able to enter the state and has entered the state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Enables the user to configure client and service credentials as well as service credential authentication settings for use on the client side of communication. + + + + + Causes a communication object to transition from its current state into the closed state. + + The that specifies how long the send operation has to complete before timing out. was called on an object in the state.The timeout elapsed before the was able to close gracefully. + + + + Causes a communication object to transition from its current state into the closed state. + + was called on an object in the state.The default close timeout elapsed before the was able to close gracefully. + + + + Closes the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Occurs when Close operation has completed. + + + + + Occurs when the communication object completes its transition from the closing state into the closed state. + + + + + Occurs when the communication object first enters the closing state. + + + + + Gets or sets the cookie container. + + The cookie container. + + + + Completes an asynchronous operation to close a communication object. + + The that is returned by a call to the method. was called on an object in the state.The timeout elapsed before the was able to close gracefully. + + + + Completes an asynchronous operation to open a communication object. + + The that is returned by a call to the method.The was unable to be opened and has entered the state.The timeout elapsed before the was able to enter the state and has entered the state. + + + + Gets the target endpoint for the service to which the WCF client can connect. + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Occurs when the communication object first enters the faulted state. + + + + + Gets the underlying implementation. + + + + + Causes a communication object to transition from the created state into the opened state. + + The was unable to be opened and has entered the state.The default open timeout elapsed before the was able to enter the state and has entered the state. + + + + Causes a communication object to transition from the created state into the opened state within a specified interval of time. + + The that specifies how long the send operation has to complete before timing out.The was unable to be opened and has entered the state.The specified timeout elapsed before the was able to enter the state and has entered the state. + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Occurs when Open operation has completed. + + + + + Occurs when the communication object completes its transition from the opening state into the opened state. + + + + + Occurs when the communication object first enters the opening state. + + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Occurs when the log message processing has completed. + + + + + Gets the current state of the communication-oriented object. + + + The value of the of the object. + + + + + Causes a communication object to transition from its current state into the closed state. + + + + + Abstract base class for the WcfLogReceiverXXXWay classes. It can only be + used internally (see internal constructor). It passes off any Channel usage + to the inheriting class. + + Type of the WCF service. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Occurs when the log message processing has completed. + + + + + Occurs when Open operation has completed. + + + + + Occurs when Close operation has completed. + + + + + Gets or sets the cookie container. + + The cookie container. + + + + Opens the client asynchronously. + + + + + Opens the client asynchronously. + + User-specific state. + + + + Closes the client asynchronously. + + + + + Closes the client asynchronously. + + User-specific state. + + + + Processes the log messages asynchronously. + + The events to send. + + + + Processes the log messages asynchronously. + + The events to send. + User-specific state. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Log Receiver Client using WCF. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Returns a new channel from the client to the service. + + + A channel of type that identifies the type + of service contract encapsulated by this client object (proxy). + + + + + Log Receiver Client using WCF. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + Name of the endpoint configuration. + The remote address. + + + + Initializes a new instance of the class. + + The binding. + The remote address. + + + + Begins processing of log messages. + + The events to send. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Returns a new channel from the client to the service. + + + A channel of type that identifies the type + of service contract encapsulated by this client object (proxy). + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + Mostly for compatibility with log4net. + + + + + + + + + + Gets the thread-local dictionary + + Must be true for any subsequent dictionary modification operation + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mapped Diagnostics Context - used for log4net compatibility. + + This class marked as obsolete before NLog 2.0 and it may be removed in a future release. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified item exists in current thread MDC. + + + + Removes the specified item from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + + + + + + A mesage template + + + + The original template string. + This is the key passed to structured targets. + + + The list of literal parts, useful for string rendering. + It indicates the number of characters from the original string to print, + then there's a hole with how many chars to skip. + + "Hello {firstName} {lastName}!" + ------------------------------------- + â•‘P |S â•‘P|S â•‘P|Sâ•‘ + â•‘6 |11 â•‘1|10 â•‘1|0â•‘ + â•‘Hello |{firstName}â•‘ |{lastName}â•‘!â•‘ + + "{x} * 2 = {2x}" + -------------------- + â•‘P|S â•‘P |S â•‘ + â•‘0|3 â•‘7 |4 â•‘ + â•‘{x}â•‘ * 2 = |{2x}â•‘ + + The tricky part is escaped braces. They are represented by a skip = 0, + which is interpreted as "move one char forward, no hole". + + "Escaped }} is fun." + ---------------------- + â•‘P |Sâ•‘P |Sâ•‘ + â•‘9 |0â•‘8 |0â•‘ + â•‘Escaped }|}â•‘ is fun.|â•‘ + + + + This list of holes. It's used both to fill the string rendering + and to send values along the template to structured targets. + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Create a template, which is already parsed + + + + + + + + + Create a template, which is already parsed + + + + + + + + This is for testing only: recreates from the parsed data. + + + + This is for testing only: rebuilds the hole + + Add to this string builder + ref for performance + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Render templates + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + Do not fallback to StringBuilder.Format for positional templates. + The String Builder destination. + Parameters for the holes. + + + + Render a template to a string. + + The template. + The String Builder destination. + Culture. + Parameters for the holes. + Rendered template, never null. + + + + Convert Render or serialize a value, with optionnally backwardscompatible with + + + + Singleton + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serialising a scalar (string, int, NULL) or simple type (IFormattable) + + + + + + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + formatstring of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Nested Diagnostics Context - for log4net compatibility. + + This class marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top object off the NDC stack. The object is removed from the stack. + + The top object from the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all objects on the NDC stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + Mostly for compatibility with log4net. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Resets the stack to the original count during . + + + + + Initializes a new instance of the class. + + The stack. + The previous count. + + + + Reverts the stack to original item count. + + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + Override this to create the actual logging task + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Schedules the LogEventInfo for async writing + + The log event. + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation betweewn task-completion and timeout + + + + Creates new task to handle the writing of the input + + LogEvent to write + New Task created [true / false] + + + + Handles that scheduled task has completed (succesfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Writes log messages to the console. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the Console.Out or + Console.Error depending on the value of the Error flag. + + The logging event. + + Note that the Error option is not supported on .NET Compact Framework. + + + + + Write to output + + text to be written. + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the attached debugger. + + The logging event. + + + + Mock target - useful for testing. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + Increases the number of messages. + + The logging event. + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialisation options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized succesfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ascii characters be encoded + JSON escaped string + + + + Get properties, cached for a type + + + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The begging position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. When the number of archive files exceed the obsolete archives are deleted. + + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + + When the number of archive files exceed the obsolete archives are deleted. + + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. When the number of archive files + exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Determine if old archive files should be deleted. + + Maximum number of archive files that should be kept + when old archives should be deleted; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the + highest number. When the number of archive files exceed the obsolete + archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + Documentation on NLog Wiki + + + + Default clean up period of the initilized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + The maximum number of initialised files before clean up procedures are initiated, + to keep the number of initialised files to a minimum. Chose 25 to cater for monthly rolling of log-files. + + + + + This value disables file archiving based on the size. + + + + + Holds the initialised files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialised files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + Setting this property to True helps improve performance. + + + + + + Gets or sets the maximum number of log filenames that should be stored as existing. + + + The bigger this number is the longer it will take to write each log record. The smaller the number is + the higher the chance that the clean function will be run when no new files have been opened. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. If this number is negative the files are + not automatically closed after a period of inactivity. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. If this number is negative or zero + the files are not flushed by timer. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. + Choose: + + + Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. +

+ Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. +

+
+ +
+ + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Returns estimated size for memory stream, based on events count and first event size in bytes. + + Count of events + Bytes count of first event + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occuring day of the week to return a DateTime for. + The DateTime of the next occuring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + Filename to archive. If null, then nothing to archive. + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialise a file to be used by the instance. Based on the number of initialised + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Invokes the archiving and clean up of older archive file based on the values of and properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formating and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Interface for serialization of values, maybe even objects to JSON format. + Useful for wrappers for existing serializers. + + + + + Returns a serialization of an object + into JSON format. + + The object to serialize to JSON. + Serialized value (null = Serialize failed). + + + + Options for JSON serialisation + + + + + Add quotes arround object keys? + + + + + Formatprovider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + Initializes a new instance of the class. + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms + and data structures like a hash table. + + + + + Determines whether the specified is + equal to this instance. + + The to compare with + this instance. + + Value of true if the specified + is equal to this instance; otherwise, false. + + + The parameter is null. + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + + true if this converter can perform the conversion; otherwise, false. + + An that provides a format context. A that represents the type you want to convert from. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + + An that represents the converted value. + + An that provides a format context. The to use as the current culture. The to convert. The conversion cannot be performed. + + + + Sends log messages to a NLog Receiver Service (using WCF or Web Services). + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets the endpoint address. + + The endpoint address. + + + + + Gets or sets the name of the endpoint configuration in WCF configuration file. + + The name of the endpoint configuration. + + + + + Gets or sets a value indicating whether to use binary message encoding. + + + + + + Gets or sets a value indicating whether to use a WCF service contract that is one way (fire and forget) or two way (request-reply) + + + + + + Gets or sets the client ID. + + The client ID. + + + + + Gets the list of parameters. + + The parameters. + + + + + Gets or sets a value indicating whether to include per-event properties in the payload sent to the server. + + + + + + Called when log events are being sent (test hook). + + The events. + The async continuations. + True if events should be sent, false to stop processing them. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Append" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Add value to the , returns ordinal in + + + lookup so only unique items will be added to + value to add + + + + + Creating a new instance of WcfLogReceiverClient + + Inheritors can override this method and provide their own + service configuration - binding and endpoint address + + This method marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creating a new instance of IWcfLogReceiverClient + + Inheritors can override this method and provide their own + service configuration - binding and endpoint address + + + virtual is used by endusers + + + + Writes log messages to an ArrayList in memory for programmatic retrieval. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + Initializes the target. + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will be very slow. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6) (not supported on Windows Phone 7.0)
  • +
  • tcp4://host:port - force TCP/IPv4 (not supported on Windows Phone 7.0)
  • +
  • tcp6://host:port - force TCP/IPv6 (not supported on Windows Phone 7.0)
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6, not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp4://host:port - force UDP/IPv4 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp6://host:port - force UDP/IPv6 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). + + + + + + Gets or sets the maximum current connections. 0 = no maximum. + + + + + + Gets or sets the action that should be taken if the will be more connections than . + + + + + + Gets or sets the maximum queue size. + + + + + + Gets or sets the action that should be taken if the message is larger than + maxMessageSize. + + + + + + Gets or sets the encoding to be used. + + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + The action to be taken when there are more connections then the max. + + + + + Just allow it. + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. + + + + + Discard the entire message. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Sends log messages to the remote instance of NLog Viewer. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include stack contents. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Outputs log messages through the OutputDebugString() Win32 API. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Outputs the rendered logging event through the OutputDebugString() Win32 API. + + The logging event. + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Can be used if has been enabled. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Closes the target and releases any unmanaged resources. + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + NOTE! Obsolete, instead override WriteAsyncThreadSafe(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target, in a thread safe manner. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the event info in layout. + + The layout. + The event info. + String representing log event. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Marks class as a logging target and assigns a name to it. + + This attribute is not required when registering the target in the API. + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + Represents target that supports context capture using MDLC, MDC, NDLC and NDC + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of MDC context + + + Internal Layout that allows capture of NDC context + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the layout used to format log messages. + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the text to be rendered. + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + + + Write from input to output. Fix the UTF-8 bom + + + + + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued (-1 means everything). + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides asynchronous, buffered execution of target writes. + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queueing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the limit of full s to write before yielding into + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent statisfies the . + If condition isn't set, flushes on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes the target. + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The aciton to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target. + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Writes logging event to the log target. + + Logging event to be written out. + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + The method remembers the last-known-successful target + and starts the iteration from it. + If is set, the method + resets the target to the first target + stored in . + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + Limits the number of messages written per timespan to the wrapped target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the DateTime when the current will be reset. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Sends log messages to a randomly selected target. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the time source. + + + + Define Localizable attribute for platforms that don't have it. + + + + + Initializes a new instance of the class. + + Determines whether the target is localizable. + + + + Gets or sets a value indicating whether the target is localizable. + + +
+
diff --git a/MTC_Adapter/packages/NLog.4.5.11/lib/wp8/NLog.xml b/MTC_Adapter/packages/NLog.4.5.11/lib/wp8/NLog.xml new file mode 100644 index 0000000..f9af4bb --- /dev/null +++ b/MTC_Adapter/packages/NLog.4.5.11/lib/wp8/NLog.xml @@ -0,0 +1,19021 @@ + + + + NLog + + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + internal class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + internal class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + internal class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + internal class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without wating) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + A value of true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + String Conversion Helpers + + + + + Converts input string value into + + Input value + Output value + Default value + Returns failure if the input value could not be parsed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + NLog internal logger. + + Writes to file, console or custom textwriter (see ) + + + Don't use as that can lead to recursive calls - stackoverflows + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Initializes static members of the InternalLogger class. + + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled. + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the number of items in the array. + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Base class for representing nodes in condition expression trees. + + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + Returns a string representation of this expression. + + String literal in single quotes. + + + + Evaluates the expression by calculating the value + of the layout in the specified evaluation context. + + Evaluation context. + The value of the layout. + + + + Condition level expression (represented by the level keyword). + + + + + Returns a string representation of the expression. + + The 'level' string. + + + + Evaluates to the current log level. + + Evaluation context. Ignored. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + Returns a string representation of the expression. + + The literal value. + + + + Evaluates the expression. + + Evaluation context. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + Returns a string representation of this expression. + + A logger string. + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + Returns a string representation of this expression. + + The 'message' string. + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters. + + The method parameters. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Marks the class as containing condition methods. + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparision, e.g. parse a string to int. + + + + + + + Promoto to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparision. + + + index, 0 to maxint. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properies are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + New event args + + + + + + The assembly that is trying to load. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwardscomp. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Legacy interface, no longer used by the NLog engine + + + + + Gets or sets the JSON serializer to use with or + + + + + Gets or sets the string serializer to use with + + + + + Perform mesage template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in NLog.Extended.dll using late-bound types, so that we don't need a reference to NLog.Extended.dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Format of the excpetion output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + Registers a single type definition. + + The item name. + The type of the item. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Creates an item instance. + + The name of the item. + Created item. + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during installation/uninstallations. + + Log event info object. + + + + Keeps logging configuration and provides simple API + to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Variables defined in xml or in API. name is case case insensitive. + + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete on NLog 4.1 and it may be removed in a future release. + + + + Gets the variables defined in the configuration. + + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Compare objects based on their name. + + This property is use to cache the comparer object. + + + + Defines methods to support the comparison of objects for equality based on their name. + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for alle loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Flushes any pending log messages on all appenders. + + The asynchronous continuation. + + + + Validates the configuration. + + + + + Copies all variables from provided dictionary into current configuration variables. + + Master variables dictionary + + + + Replace a simple variable with a value. The orginal value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the new configuration + + The new configuration. + + + + Gets the old configuration + + The old configuration. + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or see cref="EnableLoggingForLevels"/> to enable logging. + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Target to be written to when the rule matches. + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + + Gets or sets logger name pattern. + + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends but not anywhere else. + + + + + Gets the collection of log levels enabled by this rule. + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to de disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + >Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + A that represents the current . + + + + + Checks whether te particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Factory for locating methods. + + The type of the class marker attribute. + The type of the method marker attribute. + + + + Gets a collection of all registered items in the factory. + + + Sequence of key/value pairs where each key represents the name + of the item and value is the of + the item. + + + + + Scans the assembly for classes marked with + and methods marked with and adds them + to the factory. + + The types to scan. + The prefix to use for names. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a simple name to an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The name of the item. + + + + Gets the name of the item. + + The name of the item. + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The input URI. + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Prevents a default instance of the class from being created. + + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Last error occured during configuration read + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Gets the required attribute. + + Name of the attribute. + Attribute value. + Throws if the attribute is not specified. + + + + Gets the optional boolean attribute value. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional boolean attribute value. If whitespace, then returning null. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional attribute value. + + Name of the attribute. + The default value. + Value of the attribute or default value. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Returns all parsing errors from current and all child elements. + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + Stack trace should not be captured. + + + + + Stack trace should be captured without source-level information. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Remove all spaces, also in between text. + + text + text without spaces + Tabs and other whitespace is not removed! + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Checks whether any error during XML configuration parsing has occured. + If there are any and ThrowConfigExceptions or ThrowExceptions + setting is enabled - throws NLogConfigurationException, otherwise + just write an internal log at Warn level. + + Root NLog configuration xml element + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + Rules are added to this parameter. + + + + Split list on comma, trim items + + + no empty items + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language + described here. + + + + + Gets or sets the condition expression. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Can be used if has been enabled. + + + + + Constructor + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Global Diagnostics Context - used for log4net compatibility. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Include context properties + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Provides logging interface and utility functions. + + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Extensions for NLog . + + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Provides untyped IDictionary interface on top of generic IDictionary. + + The type of the key. + The type of the value. + + + + Initializes a new instance of the DictionaryAdapter class. + + The implementation. + + + + Gets an object containing the values in the object. + + + + An object containing the values in the object. + + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + + Gets an object containing the keys of the object. + + + + An object containing the keys of the object. + + + + + Gets or sets the with the specified key. + + Dictionary key. + Value corresponding to key or null if not found + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + + Removes all elements from the object. + + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + True if the contains an element with the key; otherwise, false. + + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Wrapper IDictionaryEnumerator. + + + + + Initializes a new instance of the class. + + The wrapped. + + + + Gets both the key and the value of the current dictionary entry. + + + + A containing both the key and the value of the current dictionary entry. + + + + + Gets the key of the current dictionary entry. + + + + The key of the current element of the enumeration. + + + + + Gets the value of the current dictionary entry. + + + + The value of the current element of the enumeration. + + + + + Gets the current element in the collection. + + + + The current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + + True if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Object construction helper. + + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Interface for fakeable the current . Not fully implemented, please methods/properties as necessary. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appeander is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Closes this instance of the appender. + + + + + Flushes this current appender. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Factory class which creates objects. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialisation as it is an + intenal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + Thrown when is called on an Empty instance. + + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialised before the supplied time. + + The time which prior the appenders considered expired + + + + Fluch all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Should archive mutex be created? + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + An immutable object that stores basic file info. + + + + + Constructs a FileCharacteristics object. + + The time the file was created in UTC. + The time the file was last written to in UTC. + The size of the file in bytes. + + + + The time the file was created in UTC. + + + + + The time the file was last written to in UTC. + + + + + The size of the file in bytes. + + + + + Optimized routines to get the basic file characteristics of the specified file. + + + + + Initializes static members of the FileCharacteristicsHelper class. + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid filenames char array to avoid memory allocation everytime Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Format a log message + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Render the event info as parse as short + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as int + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as bool + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Logger configuration. + + + + + Initializes a new instance of the class. + + The targets by level. + Use the old exception log handling of NLog 3.0? + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete before NLog 4.3.11 and it will be removed in NLog 5. + + + + Gets targets for the specified level. + + The level. + Chain of targets with attached filters. + + + + Determines whether the specified level is enabled. + + The level. + + A value of true if the specified level is enabled; otherwise, false. + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes a continuation. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Performs sender-specific initialization. + + + + + Performs sender-specific close operation. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Parses the URI into an endpoint address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + Creates a new instance of the network sender based on a network URL:. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + /// + A newly created network sender. + + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Sends the specified text over the connected socket. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is a desktop version of Windows. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Portable implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Is this a property of the message? + + + + + + + Value of the property + Is this a property of the message? + + + + The properties of the logEvent + + + + + The properties extracted from the message + + + + + Injects the list of message-template-parameter into the IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The initially empty dictionary + Message-template-parameters was inserted into dictionary without trouble (true/false) + + + + Attempt to override the existing dictionary values using the message-template-parameters + + Message-template-parameters + The already filled dictionary + List of unique message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Is the property of array-type? + + Type which has the property + name of the property. + + + + + Get propertyinfo + + object which could have property + propertyname on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: http://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + Empty handle when is disabled + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Any operating system. + + + + + Unix/Linux operating systems. + + + + + Windows CE. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Unknown operating system. + + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid asssembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + formatstring. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Apend a int type (byte, int) as string + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Split a string + + + + + Split string with escape. The escape char is the same as the splitchar + + + split char. escaped also with this char + + + + + Split string with escape + + + + + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + cached result as calculating is expensive. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Helper for dealing with thread-local storage. + + + + + Allocates the data slot for storing thread-local information. + + Allocated slot key. + + + + Gets the data for a slot in thread-local storage. + + Type of the data. + The slot to get data for. + Automatically create the object if it doesn't exist. + + Slot data (will create T if null). + + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Renders all log event's properties and appends them to the specified . + + The to append the rendered data to. + Logging event. + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + Initializes a new instance of the class. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + - Silverlight: Value for is always returned. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders an assembly version and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets additional version information. + + + + + The current application domain's base directory. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with with the base directory. + + + + + + Renders the application base directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site (class name, method name and source information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A counter value (increases on each layout rendering). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + Renders the specified counter value and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + Renders the current directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current date and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the name of the item. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. See . + + + + + Log event context data with default options. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + Renders the specified exception information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + + + Find name of method on stracktrace. + + Full stracktrace + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + Renders the contents of the specified file and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Create a new. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the garbage collector. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Global Diagnostics Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified Global Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Globally-unique identifier (GUID). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + Renders a newly generated GUID string and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + Renders the specified installation parameter and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a , needed for date and number formats + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent and the current configuration. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Marks class as a layout renderer and assigns a name to it. + + This attribute is not required when registering the layout in the API. + + + + Initializes a new instance of the class. + + Name of the layout renderer, without the `${ }` + + + + Format of the ${level} layout renderer output. + + + + + Render the full level name. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Renders the current log level and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes the layout renderer. + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the XML logging event and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Renders the logger name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the date in the long format (yyyy-MM-dd HH:mm:ss.ffff) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + Renders the log message including any positional parameters and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Nested Diagnostic Context item. Provided for compatibility with log4net. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + Renders the specified Nested Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A newline literal. + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders the current process running time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + + + + The sequence ID + + + + + Renders the current log sequence ID and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current short date string (yyyy-MM-dd) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Specifies application information to display in ${sl-appinfo} renderer. + + + + + URI of the current application XAP file. + + + + + Whether application is running out-of-browser. + + + + + Installed state of an application. + + + + + Whether application is running with elevated permissions. + + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current thread. + + + + + Renders the current thread identifier and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The name of the current thread. + + + + + Renders the current thread name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The Ticks value of current date and time. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders time in the 24-h format (HH:mm:ss.mmm) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render a NLog variable (xml or config) + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Initializes the layout renderer. + + + + + Try get the + + + + + + + Renders the specified variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply JSON encoding. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + RegistryLayoutRenderer + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Initializes the layout renderer. + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See http://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Trims the whitespace from the result of another layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + Renders the inner message, processes it and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + + Output to be transform. + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply XML encoding. + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Padded and trimmed string. + + + + A layout containing one or more nested layouts. + + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + Initializes the layout. + + + + + Formats the log event relying on inner layouts. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event relying on inner layouts. + + The logging event. + for the result + + + + Closes the layout. + + + + + Generate description of Compound Layout + + Compound Layout String Description + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + If is set, then the header generation with columnnames will be disabled. + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + Initializes the layout. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event for write. + + The logging event. + for the result + + + + Get the headers with the column names. + + + + + + Render 1 columnvalue (text or header) to + + write-to + current col index + col text + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Generate description of CSV Layout + + CSV Layout String Description + + + + Specifies CSV quoting modes. + + + + + Quote all column. + + + + + Quote nothing. + + + + + Quote only whose values contain the quote symbol or + the separator. + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Formats the log event as a JSON document for writing. + + The logging event. + for the result + + + + Formats the log event as a JSON document for writing. + + The log event to be formatted. + A JSON string representation of the log event. + + + + Generate description of JSON Layout + + JSON Layout String Description + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doens't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders the event info in layout. + + The event info. + String representing log event. + + + + Optimized version of for internal Layouts. Works best + when override of is available. + + The event info. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + StringBuilder to help minimize allocations [optional]. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Marks class as a layout renderer and assigns a format string to it. + + + + + Initializes a new instance of the class. + + Layout name. + + + + Parses layout strings. + + + + + Add to + + + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result. + + + + A specialized layout that renders Log4j-compatible XML events. + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Represents a string with embedded placeholders that can render contextual information. + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Returns a that represents the current object. + + + A that represents the current object. + + + + + Initializes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + for the result + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets the logger short name. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Gets the dictionary of per-event context properties. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + The exception. + Instance of . + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Set the + + true = Always, false = Never, null = Auto Detect + + + + Specialized LogFactory that can return instances of custom logger types. + + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the name of the current class and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. After setting this property all + existing loggers will be re-configured, so there is no need to call + manually. + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets the logger with the name of the current class. + + The logger with type . + Type of the logger + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The type of the logger to create. The type must inherit from + The logger of type . + This is a slow-running method. Make sure you are not calling this method in a + loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. Use to pass the type of the needed Logger. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Returns if logging is currently enabled. + + A value of if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Currently this logfactory is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Gets the filter result. + + The filter chain. + The log event. + The result of the filter. + + + + Defines available log levels. + + + + + Trace log level. + + + + + Debug log level. + + + + + Info log level. + + + + + Warn log level. + + + + + Error log level. + + + + + Fatal log level. + + + + + Off log level. + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + + The object object. + + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Delegate used to set/get the culture in use. + + This delegate marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. + + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture to use. + + This property was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The logger class. The class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. Use to pass the type of the needed Logger. + + Name of the logger. + The logger class. The class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + An object that implements IDisposable whose Dispose() method reenables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Checks if logging is currently enabled. + + if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + Service contract for Log Receiver client. + + This class marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Internal configuration of Log Receiver Service contracts. + + + + + Wire format for NLog Event. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the client-generated identifier of the event. + + + + + Gets or sets the ordinal of the log level. + + + + + Gets or sets the logger ordinal (index into . + + The logger ordinal. + + + + Gets or sets the time delta (in ticks) between the time of the event and base time. + + + + + Gets or sets the message string index. + + + + + Gets or sets the collection of layout values. + + + + + Gets the collection of indexes into array for each layout value. + + + + + Converts the to . + + The object this is part of.. + The logger name prefix to prepend in front of the logger name. + Converted . + + + + Wire format for NLog event package. + + + + + Gets or sets the name of the client. + + The name of the client. + + + + Gets or sets the base time (UTC ticks) for all events in the package. + + The base time UTC. + + + + Gets or sets the collection of layout names which are shared among all events. + + The layout names. + + + + Gets or sets the collection of logger names. + + The logger names. + + + + Gets or sets the list of events. + + The events. + + + + Converts the events to sequence of objects suitable for routing through NLog. + + The logger name prefix to prepend in front of each logger name. + + Sequence of objects. + + + + + Converts the events to sequence of objects suitable for routing through NLog. + + + Sequence of objects. + + + + + List of strings annotated for more terse serialization. + + + + + Initializes a new instance of the class. + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + Mostly for compatibility with log4net. + + + + + + + + + + Gets the thread-local dictionary + + Must be true for any subsequent dictionary modification operation + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mapped Diagnostics Context - used for log4net compatibility. + + This class marked as obsolete before NLog 2.0 and it may be removed in a future release. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified item exists in current thread MDC. + + + + Removes the specified item from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + + + + + + A mesage template + + + + The original template string. + This is the key passed to structured targets. + + + The list of literal parts, useful for string rendering. + It indicates the number of characters from the original string to print, + then there's a hole with how many chars to skip. + + "Hello {firstName} {lastName}!" + ------------------------------------- + â•‘P |S â•‘P|S â•‘P|Sâ•‘ + â•‘6 |11 â•‘1|10 â•‘1|0â•‘ + â•‘Hello |{firstName}â•‘ |{lastName}â•‘!â•‘ + + "{x} * 2 = {2x}" + -------------------- + â•‘P|S â•‘P |S â•‘ + â•‘0|3 â•‘7 |4 â•‘ + â•‘{x}â•‘ * 2 = |{2x}â•‘ + + The tricky part is escaped braces. They are represented by a skip = 0, + which is interpreted as "move one char forward, no hole". + + "Escaped }} is fun." + ---------------------- + â•‘P |Sâ•‘P |Sâ•‘ + â•‘9 |0â•‘8 |0â•‘ + â•‘Escaped }|}â•‘ is fun.|â•‘ + + + + This list of holes. It's used both to fill the string rendering + and to send values along the template to structured targets. + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Create a template, which is already parsed + + + + + + + + + Create a template, which is already parsed + + + + + + + + This is for testing only: recreates from the parsed data. + + + + This is for testing only: rebuilds the hole + + Add to this string builder + ref for performance + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Render templates + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + Do not fallback to StringBuilder.Format for positional templates. + The String Builder destination. + Parameters for the holes. + + + + Render a template to a string. + + The template. + The String Builder destination. + Culture. + Parameters for the holes. + Rendered template, never null. + + + + Convert Render or serialize a value, with optionnally backwardscompatible with + + + + Singleton + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serialising a scalar (string, int, NULL) or simple type (IFormattable) + + + + + + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + formatstring of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Nested Diagnostics Context - for log4net compatibility. + + This class marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top object off the NDC stack. The object is removed from the stack. + + The top object from the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all objects on the NDC stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + Mostly for compatibility with log4net. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Resets the stack to the original count during . + + + + + Initializes a new instance of the class. + + The stack. + The previous count. + + + + Reverts the stack to original item count. + + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + Override this to create the actual logging task + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Schedules the LogEventInfo for async writing + + The log event. + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation betweewn task-completion and timeout + + + + Creates new task to handle the writing of the input + + LogEvent to write + New Task created [true / false] + + + + Handles that scheduled task has completed (succesfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Writes log messages to the console. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the Console.Out or + Console.Error depending on the value of the Error flag. + + The logging event. + + Note that the Error option is not supported on .NET Compact Framework. + + + + + Write to output + + text to be written. + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the attached debugger. + + The logging event. + + + + Mock target - useful for testing. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + Increases the number of messages. + + The logging event. + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialisation options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized succesfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ascii characters be encoded + JSON escaped string + + + + Get properties, cached for a type + + + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The begging position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. When the number of archive files exceed the obsolete archives are deleted. + + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + + When the number of archive files exceed the obsolete archives are deleted. + + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. When the number of archive files + exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Determine if old archive files should be deleted. + + Maximum number of archive files that should be kept + when old archives should be deleted; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the + highest number. When the number of archive files exceed the obsolete + archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + Documentation on NLog Wiki + + + + Default clean up period of the initilized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + The maximum number of initialised files before clean up procedures are initiated, + to keep the number of initialised files to a minimum. Chose 25 to cater for monthly rolling of log-files. + + + + + This value disables file archiving based on the size. + + + + + Holds the initialised files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialised files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + Setting this property to True helps improve performance. + + + + + + Gets or sets the maximum number of log filenames that should be stored as existing. + + + The bigger this number is the longer it will take to write each log record. The smaller the number is + the higher the chance that the clean function will be run when no new files have been opened. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. If this number is negative the files are + not automatically closed after a period of inactivity. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. If this number is negative or zero + the files are not flushed by timer. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. + Choose: + + + Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. +

+ Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. +

+
+ +
+ + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Returns estimated size for memory stream, based on events count and first event size in bytes. + + Count of events + Bytes count of first event + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occuring day of the week to return a DateTime for. + The DateTime of the next occuring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + Filename to archive. If null, then nothing to archive. + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialise a file to be used by the instance. Based on the number of initialised + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Invokes the archiving and clean up of older archive file based on the values of and properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formating and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Interface for serialization of values, maybe even objects to JSON format. + Useful for wrappers for existing serializers. + + + + + Returns a serialization of an object + into JSON format. + + The object to serialize to JSON. + Serialized value (null = Serialize failed). + + + + Options for JSON serialisation + + + + + Add quotes arround object keys? + + + + + Formatprovider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + Initializes a new instance of the class. + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms + and data structures like a hash table. + + + + + Determines whether the specified is + equal to this instance. + + The to compare with + this instance. + + Value of true if the specified + is equal to this instance; otherwise, false. + + + The parameter is null. + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + + true if this converter can perform the conversion; otherwise, false. + + An that provides a format context. A that represents the type you want to convert from. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + + An that represents the converted value. + + An that provides a format context. The to use as the current culture. The to convert. The conversion cannot be performed. + + + + Writes log messages to an ArrayList in memory for programmatic retrieval. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + Initializes the target. + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will be very slow. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6) (not supported on Windows Phone 7.0)
  • +
  • tcp4://host:port - force TCP/IPv4 (not supported on Windows Phone 7.0)
  • +
  • tcp6://host:port - force TCP/IPv6 (not supported on Windows Phone 7.0)
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6, not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp4://host:port - force UDP/IPv4 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp6://host:port - force UDP/IPv6 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). + + + + + + Gets or sets the maximum current connections. 0 = no maximum. + + + + + + Gets or sets the action that should be taken if the will be more connections than . + + + + + + Gets or sets the maximum queue size. + + + + + + Gets or sets the action that should be taken if the message is larger than + maxMessageSize. + + + + + + Gets or sets the encoding to be used. + + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + The action to be taken when there are more connections then the max. + + + + + Just allow it. + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. + + + + + Discard the entire message. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Sends log messages to the remote instance of NLog Viewer. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include stack contents. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Outputs log messages through the OutputDebugString() Win32 API. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Outputs the rendered logging event through the OutputDebugString() Win32 API. + + The logging event. + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Can be used if has been enabled. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Closes the target and releases any unmanaged resources. + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + NOTE! Obsolete, instead override WriteAsyncThreadSafe(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target, in a thread safe manner. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the event info in layout. + + The layout. + The event info. + String representing log event. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Marks class as a logging target and assigns a name to it. + + This attribute is not required when registering the target in the API. + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + Represents target that supports context capture using MDLC, MDC, NDLC and NDC + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of MDC context + + + Internal Layout that allows capture of NDC context + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the layout used to format log messages. + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the text to be rendered. + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + + + Write from input to output. Fix the UTF-8 bom + + + + + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued (-1 means everything). + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides asynchronous, buffered execution of target writes. + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queueing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the limit of full s to write before yielding into + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent statisfies the . + If condition isn't set, flushes on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes the target. + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The aciton to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target. + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Writes logging event to the log target. + + Logging event to be written out. + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + The method remembers the last-known-successful target + and starts the iteration from it. + If is set, the method + resets the target to the first target + stored in . + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + Limits the number of messages written per timespan to the wrapped target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the DateTime when the current will be reset. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Sends log messages to a randomly selected target. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the time source. + + + + Define Localizable attribute for platforms that don't have it. + + + + + Initializes a new instance of the class. + + Determines whether the target is localizable. + + + + Gets or sets a value indicating whether the target is localizable. + + +
+
diff --git a/MTC_Adapter/packages/NLog.4.5.11/lib/xamarinios10/NLog.xml b/MTC_Adapter/packages/NLog.4.5.11/lib/xamarinios10/NLog.xml new file mode 100644 index 0000000..4927eae --- /dev/null +++ b/MTC_Adapter/packages/NLog.4.5.11/lib/xamarinios10/NLog.xml @@ -0,0 +1,24112 @@ + + + + NLog + + + + + Indicates that the value of the marked element could be null sometimes, + so the check for null is necessary before its usage + + + [CanBeNull] public object Test() { return null; } + public void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element could never be null + + + [NotNull] public object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Indicates that the marked method builds string by format pattern and (optional) arguments. + Parameter, which contains format string, should be given in constructor. The format string + should be in -like form + + + [StringFormatMethod("message")] + public void ShowError(string message, params object[] args) { /* do something */ } + public void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as format-string + + + + + Indicates that the function argument should be string literal and match one + of the parameters of the caller function. For example, ReSharper annotates + the parameter of + + + public void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + interface + and this method is used to notify that some property value changed + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + internal class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + private string _name; + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If method has single input parameter, it's name could be omitted.
+ Using halt (or void/nothing, which is the same) + for method output means that the methos doesn't return normally.
+ canbenull annotation is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, + or use single attribute with rows separated by semicolon.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("halt <= condition: false")] + public void Assert(bool condition, string text) // regular assertion method + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates that marked element should be localized or not + + + [LocalizationRequiredAttribute(true)] + internal class Foo { + private string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + class UsesNoEquality { + public void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + internal class ComponentAttribute : Attribute { } + [Component] // ComponentAttribute requires implementing IComponent interface + internal class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly + (e.g. via reflection, in external library), so this symbol + will not be marked as unused (as well as by other usage inspections) + + + + + Should be used on attributes and causes ReSharper + to not mark symbols marked with such attributes as unused + (as well as by other usage inspections) + + + + Only entity marked with attribute considered used + + + Indicates implicit assignment to a member + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type + + + + Specify what is considered used implicitly + when marked with + or + + + + Members of entity marked with attribute are considered used + + + Entity marked with attribute and all its members considered used + + + + This attribute is intended to mark publicly available API + which should not be removed and so is treated as used + + + + + Tells code analysis engine if the parameter is completely handled + when the invoked method is on stack. If the parameter is a delegate, + indicates that delegate is executed while the method is executed. + If the parameter is an enumerable, indicates that it is enumerated + while the method is executed + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute + + + [Pure] private int Multiply(int x, int y) { return x * y; } + public void Foo() { + const int a = 2, b = 2; + Multiply(a, b); // Waring: Return value of pure method is not used + } + + + + + Indicates that a parameter is a path to a file or a folder + within a web project. Path can be relative or absolute, + starting from web root (~) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC action. If applied to a method, the MVC action name is calculated + implicitly from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC area. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC controller. If applied to a method, + the MVC controller name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC Master. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC model type. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(String, Object) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that + the parameter is an MVC partial view. If applied to a method, + the MVC partial view name is calculated implicitly from the context. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Allows disabling all inspections + for MVC views within a class or a method. + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC display template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template. + Use this attribute for custom wrappers similar to + System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) + + + + + ASP.NET MVC attribute. Indicates that a parameter is an MVC template. + Use this attribute for custom wrappers similar to + System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) + + + + + ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter + is an MVC view. If applied to a method, the MVC view name is calculated implicitly + from the context. Use this attribute for custom wrappers similar to + System.Web.Mvc.Controller.View(Object) + + + + + ASP.NET MVC attribute. When applied to a parameter of an attribute, + indicates that this parameter is an MVC action name + + + [ActionName("Foo")] + public ActionResult Login(string returnUrl) { + ViewBag.ReturnUrl = Url.Action("Foo"); // OK + return RedirectToAction("Bar"); // Error: Cannot resolve action + } + + + + + Razor attribute. Indicates that a parameter or a method is a Razor section. + Use this attribute for custom wrappers similar to + System.Web.WebPages.WebPageBase.RenderSection(String) + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without wating) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + A value of true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + String Conversion Helpers + + + + + Converts input string value into + + Input value + Output value + Default value + Returns failure if the input value could not be parsed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + NLog internal logger. + + Writes to file, console or custom textwriter (see ) + + + Don't use as that can lead to recursive calls - stackoverflows + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Initializes static members of the InternalLogger class. + + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled. + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the number of items in the array. + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Base class for representing nodes in condition expression trees. + + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + Returns a string representation of this expression. + + String literal in single quotes. + + + + Evaluates the expression by calculating the value + of the layout in the specified evaluation context. + + Evaluation context. + The value of the layout. + + + + Condition level expression (represented by the level keyword). + + + + + Returns a string representation of the expression. + + The 'level' string. + + + + Evaluates to the current log level. + + Evaluation context. Ignored. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + Returns a string representation of the expression. + + The literal value. + + + + Evaluates the expression. + + Evaluation context. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + Returns a string representation of this expression. + + A logger string. + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + Returns a string representation of this expression. + + The 'message' string. + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters. + + The method parameters. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Marks the class as containing condition methods. + + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + Returns a string representation of the expression. + + + A that represents the condition expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparision, e.g. parse a string to int. + + + + + + + Promoto to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparision. + + + index, 0 to maxint. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properies are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + New event args + + + + + + The assembly that is trying to load. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwardscomp. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Legacy interface, no longer used by the NLog engine + + + + + Gets or sets the JSON serializer to use with or + + + + + Gets or sets the string serializer to use with + + + + + Perform mesage template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in NLog.Extended.dll using late-bound types, so that we don't need a reference to NLog.Extended.dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Format of the excpetion output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + Registers a single type definition. + + The item name. + The type of the item. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Creates an item instance. + + The name of the item. + Created item. + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during installation/uninstallations. + + Log event info object. + + + + Keeps logging configuration and provides simple API + to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Variables defined in xml or in API. name is case case insensitive. + + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete on NLog 4.1 and it may be removed in a future release. + + + + Gets the variables defined in the configuration. + + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Compare objects based on their name. + + This property is use to cache the comparer object. + + + + Defines methods to support the comparison of objects for equality based on their name. + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for alle loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for alle loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Flushes any pending log messages on all appenders. + + The asynchronous continuation. + + + + Validates the configuration. + + + + + Copies all variables from provided dictionary into current configuration variables. + + Master variables dictionary + + + + Replace a simple variable with a value. The orginal value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the new configuration + + The new configuration. + + + + Gets the old configuration + + The old configuration. + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or see cref="EnableLoggingForLevels"/> to enable logging. + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Target to be written to when the rule matches. + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + + Gets or sets logger name pattern. + + + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends but not anywhere else. + + + + + Gets the collection of log levels enabled by this rule. + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to de disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + >Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + A that represents the current . + + + + + Checks whether te particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Factory for locating methods. + + The type of the class marker attribute. + The type of the method marker attribute. + + + + Gets a collection of all registered items in the factory. + + + Sequence of key/value pairs where each key represents the name + of the item and value is the of + the item. + + + + + Scans the assembly for classes marked with + and methods marked with and adds them + to the factory. + + The types to scan. + The prefix to use for names. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a simple name to an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The name of the item. + + + + Gets the name of the item. + + The name of the item. + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The input URI. + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Prevents a default instance of the class from being created. + + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Last error occured during configuration read + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Gets the required attribute. + + Name of the attribute. + Attribute value. + Throws if the attribute is not specified. + + + + Gets the optional boolean attribute value. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional boolean attribute value. If whitespace, then returning null. + + Name of the attribute. + Default value to return if the attribute is not found. + Boolean attribute value or default. + + + + Gets the optional attribute value. + + Name of the attribute. + The default value. + Value of the attribute or default value. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Returns all parsing errors from current and all child elements. + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + Stack trace should not be captured. + + + + + Stack trace should be captured without source-level information. + + + + + Stack trace should be captured including source-level information such as line numbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + + + + Initializes a new instance of the class. + + The XML element. + Name of the XML file. + If set to true errors will be ignored during file processing. + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Remove all spaces, also in between text. + + text + text without spaces + Tabs and other whitespace is not removed! + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). + Ignore any errors during configuration. + + + + Checks whether any error during XML configuration parsing has occured. + If there are any and ThrowConfigExceptions or ThrowExceptions + setting is enabled - throws NLogConfigurationException, otherwise + just write an internal log at Warn level. + + Root NLog configuration xml element + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + Rules are added to this parameter. + + + + Split list on comma, trim items + + + no empty items + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language + described here. + + + + + Gets or sets the condition expression. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Can be used if has been enabled. + + + + + Constructor + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Writes the log event to the underlying logger. + + If condition is true, write log event; otherwise ignore event. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Global Diagnostics Context - used for log4net compatibility. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Include context properties + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Extensions for NLog . + + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Provides untyped IDictionary interface on top of generic IDictionary. + + The type of the key. + The type of the value. + + + + Initializes a new instance of the DictionaryAdapter class. + + The implementation. + + + + Gets an object containing the values in the object. + + + + An object containing the values in the object. + + + + + Gets the number of elements contained in the . + + + + The number of elements contained in the . + + + + + Gets a value indicating whether access to the is synchronized (thread safe). + + + true if access to the is synchronized (thread safe); otherwise, false. + + + + + Gets an object that can be used to synchronize access to the . + + + + An object that can be used to synchronize access to the . + + + + + Gets a value indicating whether the object has a fixed size. + + + true if the object has a fixed size; otherwise, false. + + + + + Gets a value indicating whether the object is read-only. + + + true if the object is read-only; otherwise, false. + + + + + Gets an object containing the keys of the object. + + + + An object containing the keys of the object. + + + + + Gets or sets the with the specified key. + + Dictionary key. + Value corresponding to key or null if not found + + + + Adds an element with the provided key and value to the object. + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + + Removes all elements from the object. + + + + + Determines whether the object contains an element with the specified key. + + The key to locate in the object. + + True if the contains an element with the key; otherwise, false. + + + + + Returns an object for the object. + + + An object for the object. + + + + + Removes the element with the specified key from the object. + + The key of the element to remove. + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Wrapper IDictionaryEnumerator. + + + + + Initializes a new instance of the class. + + The wrapped. + + + + Gets both the key and the value of the current dictionary entry. + + + + A containing both the key and the value of the current dictionary entry. + + + + + Gets the key of the current dictionary entry. + + + + The key of the current element of the enumeration. + + + + + Gets the value of the current dictionary entry. + + + + The value of the current element of the enumeration. + + + + + Gets the current element in the collection. + + + + The current element in the collection. + + + + + Advances the enumerator to the next element of the collection. + + + True if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. + + + + + Sets the enumerator to its initial position, which is before the first element in the collection. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + Object construction helper. + + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Interface for fakeable the current . Not fully implemented, please methods/properties as necessary. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appeander is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Closes this instance of the appender. + + + + + Flushes this current appender. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Factory class which creates objects. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialisation as it is an + intenal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + Thrown when is called on an Empty instance. + + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialised before the supplied time. + + The time which prior the appenders considered expired + + + + Fluch all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Should archive mutex be created? + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Writes the specified bytes. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this instance. + + + + + Closes this instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appeander. + + A long value representing the length of the file in bytes. + + + + Factory class. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + + Instance of which can be used to write to the file. + + + + + An immutable object that stores basic file info. + + + + + Constructs a FileCharacteristics object. + + The time the file was created in UTC. + The time the file was last written to in UTC. + The size of the file in bytes. + + + + The time the file was created in UTC. + + + + + The time the file was last written to in UTC. + + + + + The size of the file in bytes. + + + + + Optimized routines to get the basic file characteristics of the specified file. + + + + + Initializes static members of the FileCharacteristicsHelper class. + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid filenames char array to avoid memory allocation everytime Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Render the event info as parse as short + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as int + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Render the event info as parse as bool + + current layout + + default value when the render + layout name for log message to internal log when logging fails + + + + + Logger configuration. + + + + + Initializes a new instance of the class. + + The targets by level. + Use the old exception log handling of NLog 3.0? + + + + + Use the old exception log handling of NLog 3.0? + + This method was marked as obsolete before NLog 4.3.11 and it will be removed in NLog 5. + + + + Gets targets for the specified level. + + The level. + Chain of targets with attached filters. + + + + Determines whether the specified level is enabled. + + The level. + + A value of true if the specified level is enabled; otherwise, false. + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes a continuation. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Performs sender-specific initialization. + + + + + Performs sender-specific close operation. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Actually sends the given text over the specified protocol. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Parses the URI into an endpoint address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + Creates a new instance of the network sender based on a network URL:. + + + URL that determines the network sender to be created. + + + The maximum queue size. + + /// + A newly created network sender. + + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Performs sender-specific flush. + + The continuation. + + + + Sends the specified text over the connected socket. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The address family. + Type of the socket. + Type of the protocol. + Implementation of to use. + + + + Performs sender-specific initialization. + + + + + Closes the socket. + + The continuation. + + + + Sends the specified text as a UDP datagram. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + To be overridden in inheriting classes. + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is a desktop version of Windows. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Portable implementation of . + + + + + Gets the information about a file. + + Name of the file. + The file stream. + The file characteristics, if the file information was retrieved successfully, otherwise null. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Is this a property of the message? + + + + + + + Value of the property + Is this a property of the message? + + + + The properties of the logEvent + + + + + The properties extracted from the message + + + + + Injects the list of message-template-parameter into the IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The initially empty dictionary + Message-template-parameters was inserted into dictionary without trouble (true/false) + + + + Attempt to override the existing dictionary values using the message-template-parameters + + Message-template-parameters + The already filled dictionary + List of unique message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Is the property of array-type? + + Type which has the property + name of the property. + + + + + Get propertyinfo + + object which could have property + propertyname on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: http://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + Empty handle when is disabled + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Any operating system. + + + + + Unix/Linux operating systems. + + + + + Windows CE. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Unknown operating system. + + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid asssembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + formatstring. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Apend a int type (byte, int) as string + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Split a string + + + + + Split string with escape. The escape char is the same as the splitchar + + + split char. escaped also with this char + + + + + Split string with escape + + + + + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + cached result as calculating is expensive. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Helper for dealing with thread-local storage. + + + + + Allocates the data slot for storing thread-local information. + + Allocated slot key. + + + + Gets the data for a slot in thread-local storage. + + Type of the data. + The slot to get data for. + Automatically create the object if it doesn't exist. + + Slot data (will create T if null). + + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Renders all log event's properties and appends them to the specified . + + The to append the rendered data to. + Logging event. + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the , the second the second the + This string is used in + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Render the layout + + + + + + + Convert the formatting string + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + Initializes a new instance of the class. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + - Silverlight: Value for is always returned. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders an assembly version and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Gets the assembly specified by , or entry assembly otherwise + + Found assembly + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets additional version information. + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with with the base directory. + + + + + + Renders the application base directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source file name. Full callsite + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site (class name, method name and source information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A counter value (increases on each layout rendering). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + Renders the specified counter value and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + Renders the current directory and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current date and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + Renders the specified environment variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. + + This class was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the name of the item. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Log event context data. See . + + + + + Log event context data with default options. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Renders the specified log event context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + Renders the specified exception information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + Renders the contents of the specified file and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Create a new. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the garbage collector. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Global Diagnostics Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified Global Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Globally-unique identifier (GUID). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + Renders a newly generated GUID string and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Thread identity information (name and authentication information). + + + + + Initializes a new instance of the class. + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + Renders the specified identity information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + Renders the specified installation parameter and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the specified environmental information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a , needed for date and number formats + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer. + + Short-cut for registing to default + Type of the layout renderer. + Name of the layout renderer - without ${}. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback recieves the logEvent and the current configuration. + + Name of the layout renderer - without ${}. + Callback that returns the value for the layout renderer. + + + + Marks class as a layout renderer and assigns a name to it. + + This attribute is not required when registering the layout in the API. + + + + Initializes a new instance of the class. + + Name of the layout renderer, without the `${ }` + + + + Format of the ${level} layout renderer output. + + + + + Render the full level name. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Renders the current log level and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes the layout renderer. + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Renders the XML logging event and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + Renders the logger name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the date in the long format (yyyy-MM-dd HH:mm:ss.ffff) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The machine name that the process is running on. + + + + + Initializes the layout renderer. + + + + + Renders the machine name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Context item. Provided for compatibility with log4net. + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Mapped Diagnostic Logical Context item (based on CallContext). + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Renders the specified MDLC item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + Renders the log message including any positional parameters and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Nested Diagnostic Context item. Provided for compatibility with log4net. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + Renders the specified Nested Diagnostics Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Renderer (Async scope) + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Renders the specified Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + Renders the timing details of the Nested Logical Context item and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A newline literal. + + + + + Renders the specified string literal and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The directory where NLog.dll is located. + + + + + Initializes static members of the NLogDirLayoutRenderer class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The information about the running process. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Renders the selected process information. + + The to append the rendered data to. + Logging event. + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders the current process running time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + + + + The sequence ID + + + + + Renders the current log sequence ID and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Renders the current short date string (yyyy-MM-dd) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Gets the level of stack trace information required by the implementing class. + + + + + + Renders the call site and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + Renders the directory where NLog is located and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The identifier of the current thread. + + + + + Renders the current thread identifier and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The name of the current thread. + + + + + Renders the current thread name and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The Ticks value of current date and time. + + + + + Renders the ticks value of current time and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Renders time in the 24-h format (HH:mm:ss.mmm) and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + Renders the current trace activity ID. + + The to append the rendered data to. + Logging event. + + + + Render a NLog variable (xml or config) + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Initializes the layout renderer. + + + + + Try get the + + + + + + + Renders the specified variable and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Thread Windows identity information (username). + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets a value indicating whether username should be included. + + + + + + Renders the current thread windows identity information and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply JSON encoding. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + RegistryLayoutRenderer + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Initializes the layout renderer. + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See http://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Trims the whitespace from the result of another layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Post-processed text. + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + Renders the inner message, processes it and appends it to the specified . + + The to append the rendered data to. + Logging event. + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + + Output to be transform. + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to apply XML encoding. + + + + + + Post-processes the rendered message. + + The text to be post-processed. + Padded and trimmed string. + + + + A layout containing one or more nested layouts. + + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + Initializes the layout. + + + + + Formats the log event relying on inner layouts. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event relying on inner layouts. + + The logging event. + for the result + + + + Closes the layout. + + + + + Generate description of Compound Layout + + Compound Layout String Description + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + If is set, then the header generation with columnnames will be disabled. + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + Initializes the layout. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Formats the log event for write. + + The logging event. + for the result + + + + Get the headers with the column names. + + + + + + Render 1 columnvalue (text or header) to + + write-to + current col index + col text + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Generate description of CSV Layout + + CSV Layout String Description + + + + Specifies CSV quoting modes. + + + + + Quote all column. + + + + + Quote nothing. + + + + + Quote only whose values contain the quote symbol or + the separator. + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Determines wether or not this attribute will be Json encoded. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Formats the log event as a JSON document for writing. + + The logging event. + for the result + + + + Formats the log event as a JSON document for writing. + + The log event to be formatted. + A JSON string representation of the log event. + + + + Generate description of JSON Layout + + JSON Layout String Description + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doens't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders the event info in layout. + + The event info. + String representing log event. + + + + Optimized version of for internal Layouts. Works best + when override of is available. + + The event info. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + StringBuilder to help minimize allocations [optional]. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registing to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Marks class as a layout renderer and assigns a format string to it. + + + + + Initializes a new instance of the class. + + Layout name. + + + + Parses layout strings. + + + + + Add to + + + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result. + + + + A specialized layout that renders Log4j-compatible XML events. + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers. + + The logging event. + for the result + + + + Represents a string with embedded placeholders that can render contextual information. + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Returns a that represents the current object. + + + A that represents the current object. + + + + + Initializes the layout. + + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + The rendered layout. + + + + Renders the layout for the specified logging event by invoking layout renderers + that make up the event. + + The logging event. + for the result + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + Log message including parameter placeholders. + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Logger name. + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets the logger short name. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Gets the dictionary of per-event context properties. + + This property was marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The message. + The exception. + Instance of . + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Name of the logger. + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Set the + + true = Always, false = Never, null = Auto Detect + + + + Specialized LogFactory that can return instances of custom logger types. + + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the name of the current class and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. After setting this property all + existing loggers will be re-configured, so there is no need to call + manually. + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets the logger with the name of the current class. + + The logger with type . + Type of the logger + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The type of the logger to create. The type must inherit from + The logger of type . + This is a slow-running method. Make sure you are not calling this method in a + loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. Use to pass the type of the needed Logger. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + This method was marked as obsolete on NLog 4.0 and it may be removed in a future release. + + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + + Logging is enabled if the number of calls is greater than + or equal to calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Returns if logging is currently enabled. + + A value of if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Currently this logfactory is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Get file paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The filepaths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + The name of the type that wraps Logger. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Gets the filter result. + + The filter chain. + The log event. + The result of the filter. + + + + Defines available log levels. + + + + + Trace log level. + + + + + Debug log level. + + + + + Info log level. + + + + + Warn log level. + + + + + Error log level. + + + + + Fatal log level. + + + + + Off log level. + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + + The object object. + + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Delegate used to set/get the culture in use. + + This delegate marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatiblity. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + Default value - false. + + + + + Gets or sets the current logging configuration. + + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture to use. + + This property was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Gets the logger with the name of the current class. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the name of the current class. Use to pass the type of the needed Logger. + + The logger class. The class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. Use to pass the type of the needed Logger. + + Name of the logger. + The logger class. The class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Decreases the log enable counter and if it reaches -1 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + An object that implements IDisposable whose Dispose() method reenables logging. + To be used with C# using () statement. + + + + Increases the log enable counter and if it reaches 0 the logs are disabled. + + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Checks if logging is currently enabled. + + if logging is currently enabled, + otherwise. + Logging is enabled if the number of calls is greater + than or equal to calls. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + Service contract for Log Receiver client. + + This class marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Service contract for Log Receiver client. + + + + + Begins processing of log messages. + + The events. + The callback. + Asynchronous state. + + IAsyncResult value which can be passed to . + + + + + Ends asynchronous processing of log messages. + + The result. + + + + Internal configuration of Log Receiver Service contracts. + + + + + Wire format for NLog Event. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the client-generated identifier of the event. + + + + + Gets or sets the ordinal of the log level. + + + + + Gets or sets the logger ordinal (index into . + + The logger ordinal. + + + + Gets or sets the time delta (in ticks) between the time of the event and base time. + + + + + Gets or sets the message string index. + + + + + Gets or sets the collection of layout values. + + + + + Gets the collection of indexes into array for each layout value. + + + + + Converts the to . + + The object this is part of.. + The logger name prefix to prepend in front of the logger name. + Converted . + + + + Wire format for NLog event package. + + + + + Gets or sets the name of the client. + + The name of the client. + + + + Gets or sets the base time (UTC ticks) for all events in the package. + + The base time UTC. + + + + Gets or sets the collection of layout names which are shared among all events. + + The layout names. + + + + Gets or sets the collection of logger names. + + The logger names. + + + + Gets or sets the list of events. + + The events. + + + + Converts the events to sequence of objects suitable for routing through NLog. + + The logger name prefix to prepend in front of each logger name. + + Sequence of objects. + + + + + Converts the events to sequence of objects suitable for routing through NLog. + + + Sequence of objects. + + + + + List of strings annotated for more terse serialization. + + + + + Initializes a new instance of the class. + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + Mostly for compatibility with log4net. + + + + + + + + + + Gets the thread-local dictionary + + Must be true for any subsequent dictionary modification operation + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + + + + + + Simulate ImmutableDictionary behavior (which is not yet part of all .NET frameworks). + In future the real ImmutableDictionary could be used here to minimize memory usage and copying time. + + Must be true for any subsequent dictionary modification operation + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Mapped Diagnostics Context - used for log4net compatibility. + + This class marked as obsolete before NLog 2.0 and it may be removed in a future release. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item. + + Item name. + The value of , if defined; otherwise null. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified item exists in current thread MDC. + + + + Removes the specified item from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + + + + + + A mesage template + + + + The original template string. + This is the key passed to structured targets. + + + The list of literal parts, useful for string rendering. + It indicates the number of characters from the original string to print, + then there's a hole with how many chars to skip. + + "Hello {firstName} {lastName}!" + ------------------------------------- + â•‘P |S â•‘P|S â•‘P|Sâ•‘ + â•‘6 |11 â•‘1|10 â•‘1|0â•‘ + â•‘Hello |{firstName}â•‘ |{lastName}â•‘!â•‘ + + "{x} * 2 = {2x}" + -------------------- + â•‘P|S â•‘P |S â•‘ + â•‘0|3 â•‘7 |4 â•‘ + â•‘{x}â•‘ * 2 = |{2x}â•‘ + + The tricky part is escaped braces. They are represented by a skip = 0, + which is interpreted as "move one char forward, no hole". + + "Escaped }} is fun." + ---------------------- + â•‘P |Sâ•‘P |Sâ•‘ + â•‘9 |0â•‘8 |0â•‘ + â•‘Escaped }|}â•‘ is fun.|â•‘ + + + + This list of holes. It's used both to fill the string rendering + and to send values along the template to structured targets. + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Create a template, which is already parsed + + + + + + + + + Create a template, which is already parsed + + + + + + + + This is for testing only: recreates from the parsed data. + + + + This is for testing only: rebuilds the hole + + Add to this string builder + ref for performance + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Render templates + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + Do not fallback to StringBuilder.Format for positional templates. + The String Builder destination. + Parameters for the holes. + + + + Render a template to a string. + + The template. + The String Builder destination. + Culture. + Parameters for the holes. + Rendered template, never null. + + + + Convert Render or serialize a value, with optionnally backwardscompatible with + + + + Singleton + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serialising a scalar (string, int, NULL) or simple type (IFormattable) + + + + + + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + formatstring of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Nested Diagnostics Context - for log4net compatibility. + + This class marked as obsolete on NLog 2.0 and it may be removed in a future release. + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top object off the NDC stack. The object is removed from the stack. + + The top object from the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all objects on the NDC stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + Mostly for compatibility with log4net. + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Resets the stack to the original count during . + + + + + Initializes a new instance of the class. + + The stack. + The previous count. + + + + Reverts the stack to original item count. + + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwardscompatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the current scope, and returns its start time + + Scope Creation Time + + + + Peeks the first scope, and returns its start time + + Scope Creation Time + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + Override this to create the actual logging task + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Schedules the LogEventInfo for async writing + + The log event. + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation betweewn task-completion and timeout + + + + Creates new task to handle the writing of the input + + LogEvent to write + New Task created [true / false] + + + + Handles that scheduled task has completed (succesfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See http://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default.In multithreaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the Console.Out or + Console.Error depending on the value of the Error flag. + + The logging event. + + Note that the Error option is not supported on .NET Compact Framework. + + + + + Write to output + + text to be written. + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + Access this property will compile the Regex. + + + + Get regex options. + + Default option to start with. + + + + + Get Expression for a . + + + + + + Replace regex result + + + + + + + Represents a parameter to a Database target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the parameter. + The parameter layout. + + + + Gets or sets the database parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Gets or sets the database parameter size. + + + + + + Gets or sets the database parameter precision. + + + + + + Gets or sets the database parameter scale. + + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Initializes the target. + + + + + Closes the target and releases any unmanaged resources. + + + + + Writes the specified logging event to the attached debugger. + + The logging event. + + + + Mock target - useful for testing. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + Increases the number of messages. + + The logging event. + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialisation options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + Object serialized succesfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialisation options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized succesfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ascii characters be encoded + JSON escaped string + + + + Get properties, cached for a type + + + + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The begging position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. When the number of archive files exceed the obsolete archives are deleted. + + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + + When the number of archive files exceed the obsolete archives are deleted. + + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. When the number of archive files + exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Determine if old archive files should be deleted. + + Maximum number of archive files that should be kept + when old archives should be deleted; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the + highest number. When the number of archive files exceed the obsolete + archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + Documentation on NLog Wiki + + + + Default clean up period of the initilized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + The maximum number of initialised files before clean up procedures are initiated, + to keep the number of initialised files to a minimum. Chose 25 to cater for monthly rolling of log-files. + + + + + This value disables file archiving based on the size. + + + + + Holds the initialised files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialised files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + Setting this property to True helps improve performance. + + + + + + Gets or sets the maximum number of log filenames that should be stored as existing. + + + The bigger this number is the longer it will take to write each log record. The smaller the number is + the higher the chance that the clean function will be run when no new files have been opened. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. If this number is negative the files are + not automatically closed after a period of inactivity. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. If this number is negative or zero + the files are not flushed by timer. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. + Choose: + + + Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. +

+ Caution: Enabling this option can considerably slow down your file + logging in multi-process scenarios. If only one process is going to + be writing to the file, consider setting ConcurrentWrites + to false for maximum performance. +

+
+ +
+ + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Can be used if has been enabled. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Returns estimated size for memory stream, based on events count and first event size in bytes. + + Count of events + Bytes count of first event + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occuring day of the week to return a DateTime for. + The DateTime of the next occuring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + Filename to archive. If null, then nothing to archive. + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialise a file to be used by the instance. Based on the number of initialised + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Invokes the archiving and clean up of older archive file based on the values of and properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formating and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Interface for serialization of values, maybe even objects to JSON format. + Useful for wrappers for existing serializers. + + + + + Returns a serialization of an object + into JSON format. + + The object to serialize to JSON. + Serialized value (null = Serialize failed). + + + + Options for JSON serialisation + + + + + Add quotes arround object keys? + + + + + Formatprovider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + Initializes a new instance of the class. + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + Returns a string representation of the log level. + + Log level name. + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms + and data structures like a hash table. + + + + + Determines whether the specified is + equal to this instance. + + The to compare with + this instance. + + Value of true if the specified + is equal to this instance; otherwise, false. + + + The parameter is null. + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context. + + + true if this converter can perform the conversion; otherwise, false. + + An that provides a format context. A that represents the type you want to convert from. + + + + Converts the given object to the type of this converter, using the specified context and culture information. + + + An that represents the converted value. + + An that provides a format context. The to use as the current culture. The to convert. The conversion cannot be performed. + + + + Sends log messages by email using SMTP protocol. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinit waiting + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Renders an array logging events. + + Array of logging events. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mailmessage + + event for rendering layouts + string to group on + + + + Append rendered layout to the stringbuilder + + append to this + event for rendering + append if not null + + + + Create the mailmessage with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to an ArrayList in memory for programmatic retrieval. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Renders the logging event message and adds it to the internal ArrayList of log messages. + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + Initializes the target. + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will be very slow. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6) (not supported on Windows Phone 7.0)
  • +
  • tcp4://host:port - force TCP/IPv4 (not supported on Windows Phone 7.0)
  • +
  • tcp6://host:port - force TCP/IPv6 (not supported on Windows Phone 7.0)
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6, not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp4://host:port - force UDP/IPv4 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • udp6://host:port - force UDP/IPv6 (not supported on Silverlight and on Windows Phone 7.0)
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). + + + + + + Gets or sets the maximum current connections. 0 = no maximum. + + + + + + Gets or sets the action that should be taken if the will be more connections than . + + + + + + Gets or sets the maximum queue size. + + + + + + Gets or sets the action that should be taken if the message is larger than + maxMessageSize. + + + + + + Gets or sets the encoding to be used. + + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + The action to be taken when there are more connections then the max. + + + + + Just allow it. + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. + + + + + Discard the entire message. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calcuate the value for the parameter. + + + + + + Sends log messages to the remote instance of NLog Viewer. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

+ NOTE: If your receiver application is ever likely to be off-line, don't use TCP protocol + or you'll get TCP timeouts and your application will crawl. + Either switch to UDP transport or use AsyncWrapper target + so that your application threads will not be blocked by the timing-out connection attempts. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include stack contents. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the NDLC item separator. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the NDC item separator. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Outputs log messages through the OutputDebugString() Win32 API. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Outputs the rendered logging event through the OutputDebugString() Win32 API. + + The logging event. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Can be used if has been enabled. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target. Can be used by inheriting classes + to initialize logging. + + + + + Closes the target and releases any unmanaged resources. + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + NOTE! Obsolete, instead override WriteAsyncThreadSafe(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target, in a thread safe manner. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + threadsafe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the event info in layout. + + The layout. + The event info. + String representing log event. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Register a custom Target. + + Short-cut for registing to default + Type of the Target. + Name of the Target. + + + + Marks class as a logging target and assigns a name to it. + + This attribute is not required when registering the target in the API. + + + + Initializes a new instance of the class. + + Name of the target. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + Represents target that supports context capture using MDLC, MDC, NDLC and NDC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Dictionary with NDLC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of MDC context + + + Internal Layout that allows capture of NDC context + + + Internal Layout that allows capture of MDLC context + + + Internal Layout that allows capture of NDLC context + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the layout used to format log messages. + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Gets or sets the text to be rendered. + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Always use independent of + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + Name of the target. + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ This assumes just one target and a single rule. More configuration + options are described here. +

+

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + + + Write from input to output. Fix the UTF-8 bom + + + + + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued (-1 means everything). + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides asynchronous, buffered execution of target writes. + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queueing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the limit of full s to write before yielding into + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent statisfies the . + If condition isn't set, flushes on each write. + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message} + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes the target. + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + Closes the target. + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The aciton to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target. + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Writes logging event to the log target. + + Logging event to be written out. + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + The method remembers the last-known-successful target + and starts the iteration from it. + If is set, the method + resets the target to the first target + stored in . + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + Limits the number of messages written per timespan to the wrapped target. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the DateTime when the current will be reset. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Logon provider. + + + + + Use the standard logon provider for the system. + + + The default security provider is negotiate, unless you pass NULL for the domain name and the user name + is not in UPN format. In this case, the default provider is NTLM. + NOTE: Windows 2000/NT: The default security provider is NTLM. + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Sends log messages to a randomly selected target. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Impersonation level. + + + + + Anonymous Level. + + + + + Identification Level. + + + + + Impersonation Level. + + + + + Delegation Level. + + + + + Logon type. + + + + + Interactive Logon. + + + This logon type is intended for users who will be interactively using the computer, such as a user being logged on + by a terminal server, remote shell, or similar process. + This logon type has the additional expense of caching logon information for disconnected operations; + therefore, it is inappropriate for some client/server applications, + such as a mail server. + + + + + Network Logon. + + + This logon type is intended for high performance servers to authenticate plaintext passwords. + The LogonUser function does not cache credentials for this logon type. + + + + + Batch Logon. + + + This logon type is intended for batch servers, where processes may be executing on behalf of a user without + their direct intervention. This type is also for higher performance servers that process many plaintext + authentication attempts at a time, such as mail or Web servers. + The LogonUser function does not cache credentials for this logon type. + + + + + Logon as a Service. + + + Indicates a service-type logon. The account provided must have the service privilege enabled. + + + + + Network Clear Text Logon. + + + This logon type preserves the name and password in the authentication package, which allows the server to make + connections to other network servers while impersonating the client. A server can accept plaintext credentials + from a client, call LogonUser, verify that the user can access the system across the network, and still + communicate with other servers. + NOTE: Windows NT: This value is not supported. + + + + + New Network Credentials. + + + This logon type allows the caller to clone its current token and specify new credentials for outbound connections. + The new logon session has the same local identifier but uses different credentials for other network connections. + NOTE: This logon type is supported only by the LOGON32_PROVIDER_WINNT50 logon provider. + NOTE: Windows NT: This value is not supported. + + + + + Writes log events to all targets. + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ The above examples assume just one target and a single rule. See below for + a programmatic configuration that's equivalent to the above config file: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + NOTE! Obsolete, instead override Write(IList{AsyncLogEventInfo} logEvents) + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + Returns the text representation of the object. Used for diagnostics. + + A string that describes the target. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the time source. + +
+
diff --git a/MTC_Adapter/packages/NLog.Schema.4.5.11/.signature.p7s b/MTC_Adapter/packages/NLog.Schema.4.5.11/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..77d1b7fe575ea93ea413680ebf2189ecfc843882 GIT binary patch literal 9489 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 literal 0 HcmV?d00001 diff --git a/MTC_Adapter/packages/NLog.Schema.4.5.11/NLog.Schema.4.5.11.nupkg b/MTC_Adapter/packages/NLog.Schema.4.5.11/NLog.Schema.4.5.11.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..cb70de3cac14b5a88197ee26c14f2c8209ae12eb GIT binary patch literal 40923 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 Oki#d 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 JO*z!ke*v>PI86Wm literal 0 HcmV?d00001 diff --git a/MTC_Adapter/packages/NLog.Schema.4.5.11/content/NLog.xsd b/MTC_Adapter/packages/NLog.Schema.4.5.11/content/NLog.xsd new file mode 100644 index 0000000..075bb91 --- /dev/null +++ b/MTC_Adapter/packages/NLog.Schema.4.5.11/content/NLog.xsd @@ -0,0 +1,3168 @@ + + + + + + + + + + + + + + + Watch config file for changes and reload automatically. + + + + + Print internal NLog messages to the console. Default value is: false + + + + + Print internal NLog messages to the console error output. Default value is: false + + + + + Write internal NLog messages to the specified file. + + + + + Log level threshold for internal log messages. Default value is: Info. + + + + + Global log level threshold for application log messages. Messages below this level won't be logged.. + + + + + Throw an exception when there is an internal error. Default value is: false. + + + + + Throw an exception when there is a configuration error. If not set, determined by throwExceptions. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. Default value is: false. + + + + + Write internal NLog messages to the System.Diagnostics.Trace. Default value is: false. + + + + + Write timestamps for internal NLog messages. Default value is: true. + + + + + Use InvariantCulture as default culture instead of CurrentCulture. Default value is: false. + + + + + Perform mesage template parsing and formatting of LogEvent messages (true = Always, false = Never, empty = Auto Detect). Default value is: empty. + + + + + + + + + + + + + + Make all targets within this section asynchronous (creates additional threads but the calling thread isn't blocked by any target writes). + + + + + + + + + + + + + + + + + Prefix for targets/layout renderers/filters/conditions loaded from this assembly. + + + + + Load NLog extensions from the specified file (*.dll) + + + + + Load NLog extensions from the specified assembly. Assembly name should be fully qualified. + + + + + + + + + + Name of the logger. May include '*' character which acts like a wildcard. Allowed forms are: *, Name, *Name, Name* and *Name* + + + + + Comma separated list of levels that this rule matches. + + + + + Minimum level that this rule matches. + + + + + Maximum level that this rule matches. + + + + + Level that this rule matches. + + + + + Comma separated list of target names. + + + + + Ignore further rules if this one matches. + + + + + Enable or disable logging rule. Disabled rules are ignored. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the file to be included. You could use * wildcard. The name is relative to the name of the current config file. + + + + + Ignore any errors in the include file. + + + + + + + Variable name. + + + + + Variable value. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Number of log events that should be processed in a batch by the lazy writer thread. + + + + + Limit of full s to write before yielding into Performance is better when writing many small batches, than writing a single large batch + + + + + Action to be taken when the lazy writer thread request queue count exceeds the set limit. + + + + + Limit on the number of requests in the lazy writer thread request queue. + + + + + Time in milliseconds to sleep between batches. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + Condition expression. Log events who meet this condition will cause a flush on the wrapped target. + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Number of log events to be buffered. + + + + + Timeout (in milliseconds) after which the contents of buffer will be flushed if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + Action to take if the buffer overflows. + + + + + Indicates whether to use sliding timeout. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Encoding to be used. + + + + + Instance of that is used to format log messages. + + + + + End of line value if a newline is appended at the end of log message . + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Action that should be taken if the will be more connections than . + + + + + Maximum queue size. + + + + + Maximum current connections. 0 = no maximum. + + + + + Indicates whether to keep connection open whenever possible. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Network address. + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + NDLC item separator. + + + + + NDC item separator. + + + + + Indicates whether to include NLog-specific extensions to log4j schema. + + + + + Indicates whether to include source info (file name and line number) in the information sent over the network. + + + + + Indicates whether to include contents of the stack. + + + + + Indicates whether to include stack contents. + + + + + Indicates whether to include dictionary contents. + + + + + Indicates whether to include dictionary contents. + + + + + Indicates whether to include call site (class and method name) in the information sent over the network. + + + + + Option to include all properties from the log events + + + + + AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + Renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + Layout that should be use to calcuate the value for the parameter. + + + + + Viewer parameter name. + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether to auto-check if the console is available. - Disables console writing if Environment.UserInteractive = False (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + The encoding for writing messages to the . + + + + + Indicates whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + Indicates whether to use default row highlighting rules. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Condition that must be met in order to set the specified foreground and background color. + + + + + Background color. + + + + + Foreground color. + + + + + + + + + + + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Indicates whether to ignore case when comparing texts. + + + + + Regular expression to be matched. You must specify either text or regex. + + + + + Text to be matched. You must specify either text or regex. + + + + + Indicates whether to match whole words only. + + + + + Background color. + + + + + Foreground color. + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether to auto-check if the console is available - Disables console writing if Environment.UserInteractive = False (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + The encoding for writing messages to the . + + + + + Indicates whether to send the log messages to the standard error instead of the standard output. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Obsolete - value will be ignored! The logging code always runs outside of transaction. Gets or sets a value indicating whether to use database transactions. Some data providers require this. + + + + + Database user name. If the ConnectionString is not provided this value will be used to construct the "User ID=" part of the connection string. + + + + + Name of the database provider. + + + + + Database password. If the ConnectionString is not provided this value will be used to construct the "Password=" part of the connection string. + + + + + Indicates whether to keep the database connection open between the log events. + + + + + Database name. If the ConnectionString is not provided this value will be used to construct the "Database=" part of the connection string. + + + + + Name of the connection string (as specified in <connectionStrings> configuration section. + + + + + Connection string. When provided, it overrides the values specified in DBHost, DBUserName, DBPassword, DBDatabase. + + + + + Database host name. If the ConnectionString is not provided this value will be used to construct the "Server=" part of the connection string. + + + + + Connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Text of the SQL command to be run on each log level. + + + + + Type of the SQL command to be run on each log level. + + + + + + + + + + + + + + + + + + + + + + + Type of the command. + + + + + Connection string to run the command against. If not provided, connection string from the target is used. + + + + + Indicates whether to ignore failures. + + + + + Command text. + + + + + + + + + + + + + + Layout that should be use to calcuate the value for the parameter. + + + + + Database parameter name. + + + + + Database parameter precision. + + + + + Database parameter scale. + + + + + Database parameter size. + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Layout that renders event Category. + + + + + Optional entrytype. When not set, or when not convertable to then determined by + + + + + Layout that renders event ID. + + + + + Name of the Event Log to write to. This can be System, Application or any user-defined name. + + + + + Name of the machine on which Event Log service is running. + + + + + Maximum Event log size in kilobytes. If null, the value won't be set. Default is 512 Kilobytes as specified by Eventlog API + + + + + Message length limit to write to the Event Log. + + + + + Value to be used as the event Source. + + + + + Action to take if the message is larger than the option. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Indicates whether to return to the first target after any successful write. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + File encoding. + + + + + Line ending mode. + + + + + Indicates whether to compress archive files into the zip archive format. + + + + + Way file archives are numbered. + + + + + Name of the file to be used for an archive. + + + + + Is the an absolute or relative path? + + + + + Indicates whether to automatically archive log files every time the specified time passes. + + + + + Size in bytes above which log files will be automatically archived. Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. Choose: + + + + + Maximum number of archive files that should be kept. + + + + + Indicates whether the footer should be written only when the file is archived. + + + + + Maximum number of log filenames that should be stored as existing. + + + + + Is the an absolute or relative path? + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Value indicationg whether file creation calls should be synchronized by a system global mutex. + + + + + Indicates whether to replace file contents on each write instead of appending log message at the end. + + + + + Indicates whether to write BOM (byte order mark) in created files + + + + + Indicates whether to enable log file(s) to be deleted. + + + + + Name of the file to write to. + + + + + Value specifying the date format to use when archiving files. + + + + + Indicates whether to archive old log file on startup. + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. If set to false, nothing gets written when the filename is wrong. + + + + + Indicates whether to create directories if they do not exist. + + + + + Indicates whether to delete old log file on startup. + + + + + File attributes (Windows only). + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Indicates whether concurrent writes to the log file by multiple processes on different network hosts. + + + + + Maximum number of seconds that files are kept open. If this number is negative the files are not automatically closed after a period of inactivity. + + + + + Number of files to be kept open. Setting this to a higher value may improve performance in a situation where a single File target is writing to many files (such as splitting by level or by logger). + + + + + Indicates whether to keep log file open instead of opening and closing it on each logging event. + + + + + Whether or not this target should just discard all data that its asked to write. Mostly used for when testing NLog Stack except final write + + + + + Indicates whether concurrent writes to the log file by multiple processes on the same host. + + + + + Number of times the write is appended on the file before NLog discards the log message. + + + + + Delay in milliseconds to wait before attempting to write to the file again. + + + + + Log file buffer size in bytes. + + + + + Maximum number of seconds before open files are flushed. If this number is negative or zero the files are not flushed by timer. + + + + + Indicates whether to automatically flush the file buffers after each log message. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Condition expression. Log events who meet this condition will be forwarded to the wrapped target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Windows domain name to change context to. + + + + + Required impersonation level. + + + + + Type of the logon provider. + + + + + Logon Type. + + + + + User account password. + + + + + Indicates whether to revert to the credentials of the process instead of impersonating another user. + + + + + Username to change context to. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interval in which messages will be written up to the number of messages. + + + + + Maximum allowed number of messages written per . + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Endpoint address. + + + + + Name of the endpoint configuration in WCF configuration file. + + + + + Indicates whether to use a WCF service contract that is one way (fire and forget) or two way (request-reply) + + + + + Client ID. + + + + + Indicates whether to include per-event properties in the payload sent to the server. + + + + + Indicates whether to use binary message encoding. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + Layout that should be use to calculate the value for the parameter. + + + + + Name of the parameter. + + + + + Type of the parameter. + + + + + Type of the parameter. Obsolete alias for + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether NewLine characters in the body should be replaced with tags. + + + + + Priority used for sending mails. + + + + + Encoding to be used for sending e-mail. + + + + + BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + Indicates whether to add new lines between log entries. + + + + + Indicates whether to send message as HTML instead of plain text. + + + + + Sender's email address (e.g. joe@domain.com). + + + + + Mail message body (repeated for each log message send in one mail). + + + + + Mail subject. + + + + + Recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Indicates the SMTP client timeout. + + + + + SMTP Server to be used for sending. + + + + + SMTP Authentication mode. + + + + + Username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + Password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + Indicates whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + + + + Port number that SMTP Server is listening on. + + + + + Indicates whether the default Settings from System.Net.MailSettings should be used. + + + + + Folder where applications save mail messages to be processed by the local SMTP server. + + + + + Specifies how outgoing email messages will be handled. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Class name. + + + + + Method name. The method must be public and static. Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx e.g. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Encoding to be used. + + + + + End of line value if a newline is appended at the end of log message . + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Network address. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Indicates whether to keep connection open whenever possible. + + + + + Maximum current connections. 0 = no maximum. + + + + + Maximum queue size. + + + + + Action that should be taken if the will be more connections than . + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Encoding to be used. + + + + + Instance of that is used to format log messages. + + + + + End of line value if a newline is appended at the end of log message . + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Action that should be taken if the will be more connections than . + + + + + Maximum queue size. + + + + + Maximum current connections. 0 = no maximum. + + + + + Indicates whether to keep connection open whenever possible. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Network address. + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + NDLC item separator. + + + + + NDC item separator. + + + + + Indicates whether to include NLog-specific extensions to log4j schema. + + + + + Indicates whether to include source info (file name and line number) in the information sent over the network. + + + + + Indicates whether to include contents of the stack. + + + + + Indicates whether to include stack contents. + + + + + Indicates whether to include dictionary contents. + + + + + Indicates whether to include dictionary contents. + + + + + Indicates whether to include call site (class and method name) in the information sent over the network. + + + + + Option to include all properties from the log events + + + + + AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + Renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Indicates whether to perform layout calculation. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Indicates whether performance counter should be automatically created. + + + + + Name of the performance counter category. + + + + + Counter help text. + + + + + Name of the performance counter. + + + + + Performance counter type. + + + + + The value by which to increment the counter. + + + + + Performance counter instance name. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Default filter to be applied when no specific rule matches. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + Condition to be tested. + + + + + Resulting filter to be applied when the condition matches. + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Number of times to repeat each log message. + + + + + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Number of retries that should be attempted on the wrapped target in case of a failure. + + + + + Time to wait between retries in milliseconds. + + + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Always use independent of + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. This will only work for UTF-8. + + + + + Web service method name. Only used with Soap. + + + + + Web service namespace. Only used with Soap. + + + + + Protocol to be used when calling web service. + + + + + Custom proxy address, include port separated by a colon + + + + + Encoding. + + + + + Web service URL. + + + + + Value whether escaping be done according to the old NLog style (Very non-standard) + + + + + Value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + Name of the root XML element, if POST of XML document chosen. If so, this property must not be null. (see and ). + + + + + (optional) root namespace of the XML document, if POST of XML document chosen. (see and ). + + + + + Proxy configuration when calling web service + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Footer layout. + + + + + Header layout. + + + + + Body layout (can be repeated multiple times). + + + + + Custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + Column delimiter. + + + + + Quote Character. + + + + + Quoting mode. + + + + + Indicates whether CVS should include header. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Layout of the column. + + + + + Name of the column. + + + + + + + + + + + + + + + + + + + List of property names to exclude when is true + + + + + Option to include all properties from the log event (as JSON) + + + + + Indicates whether to include contents of the dictionary. + + + + + Indicates whether to include contents of the dictionary. + + + + + Option to render the empty object value {} + + + + + Option to suppress the extra spaces in the output json + + + + + How far should the JSON serializer follow object references before backing off + + + + + + + + + + + + + + + + Layout that will be rendered as the attribute's value. + + + + + Name of the attribute. + + + + + Determines wether or not this attribute will be Json encoded. + + + + + Indicates whether to escape non-ascii characters + + + + + Whether an attribute with empty value should be included in the output + + + + + + + + + + + + + + Footer layout. + + + + + Header layout. + + + + + Body layout (can be repeated multiple times). + + + + + + + + + + + + + + + + + + Option to include all properties from the log events + + + + + Indicates whether to include contents of the dictionary. + + + + + Indicates whether to include contents of the dictionary. + + + + + Indicates whether to include contents of the stack. + + + + + Indicates whether to include contents of the stack. + + + + + + + + + + + + + + Layout text. + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Condition expression. + + + + + + + + + + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + Substring to be matched. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + String to compare the layout to. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + Substring to be matched. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + String to compare the layout to. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + + + + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + Applies the configured action to the initial logevent that starts the timeout period. Used to configure that it should ignore all events until timeout. + + + + + Layout to be used to filter log messages. + + + + + Max number of unique filter values to expect simultaneously + + + + + Max length of filter values, will truncate if above limit + + + + + How long before a filter expires, and logging is accepted again + + + + + Default buffer size for the internal buffers + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + Append FilterCount to the when an event is no longer filtered + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MTC_Adapter/packages/NLog.Schema.4.5.11/contentFiles/any/any/NLog.xsd b/MTC_Adapter/packages/NLog.Schema.4.5.11/contentFiles/any/any/NLog.xsd new file mode 100644 index 0000000..075bb91 --- /dev/null +++ b/MTC_Adapter/packages/NLog.Schema.4.5.11/contentFiles/any/any/NLog.xsd @@ -0,0 +1,3168 @@ + + + + + + + + + + + + + + + Watch config file for changes and reload automatically. + + + + + Print internal NLog messages to the console. Default value is: false + + + + + Print internal NLog messages to the console error output. Default value is: false + + + + + Write internal NLog messages to the specified file. + + + + + Log level threshold for internal log messages. Default value is: Info. + + + + + Global log level threshold for application log messages. Messages below this level won't be logged.. + + + + + Throw an exception when there is an internal error. Default value is: false. + + + + + Throw an exception when there is a configuration error. If not set, determined by throwExceptions. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. Default value is: false. + + + + + Write internal NLog messages to the System.Diagnostics.Trace. Default value is: false. + + + + + Write timestamps for internal NLog messages. Default value is: true. + + + + + Use InvariantCulture as default culture instead of CurrentCulture. Default value is: false. + + + + + Perform mesage template parsing and formatting of LogEvent messages (true = Always, false = Never, empty = Auto Detect). Default value is: empty. + + + + + + + + + + + + + + Make all targets within this section asynchronous (creates additional threads but the calling thread isn't blocked by any target writes). + + + + + + + + + + + + + + + + + Prefix for targets/layout renderers/filters/conditions loaded from this assembly. + + + + + Load NLog extensions from the specified file (*.dll) + + + + + Load NLog extensions from the specified assembly. Assembly name should be fully qualified. + + + + + + + + + + Name of the logger. May include '*' character which acts like a wildcard. Allowed forms are: *, Name, *Name, Name* and *Name* + + + + + Comma separated list of levels that this rule matches. + + + + + Minimum level that this rule matches. + + + + + Maximum level that this rule matches. + + + + + Level that this rule matches. + + + + + Comma separated list of target names. + + + + + Ignore further rules if this one matches. + + + + + Enable or disable logging rule. Disabled rules are ignored. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the file to be included. You could use * wildcard. The name is relative to the name of the current config file. + + + + + Ignore any errors in the include file. + + + + + + + Variable name. + + + + + Variable value. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Number of log events that should be processed in a batch by the lazy writer thread. + + + + + Limit of full s to write before yielding into Performance is better when writing many small batches, than writing a single large batch + + + + + Action to be taken when the lazy writer thread request queue count exceeds the set limit. + + + + + Limit on the number of requests in the lazy writer thread request queue. + + + + + Time in milliseconds to sleep between batches. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + Delay the flush until the LogEvent has been confirmed as written + + + + + Condition expression. Log events who meet this condition will cause a flush on the wrapped target. + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Number of log events to be buffered. + + + + + Timeout (in milliseconds) after which the contents of buffer will be flushed if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + Action to take if the buffer overflows. + + + + + Indicates whether to use sliding timeout. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Encoding to be used. + + + + + Instance of that is used to format log messages. + + + + + End of line value if a newline is appended at the end of log message . + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Action that should be taken if the will be more connections than . + + + + + Maximum queue size. + + + + + Maximum current connections. 0 = no maximum. + + + + + Indicates whether to keep connection open whenever possible. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Network address. + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + NDLC item separator. + + + + + NDC item separator. + + + + + Indicates whether to include NLog-specific extensions to log4j schema. + + + + + Indicates whether to include source info (file name and line number) in the information sent over the network. + + + + + Indicates whether to include contents of the stack. + + + + + Indicates whether to include stack contents. + + + + + Indicates whether to include dictionary contents. + + + + + Indicates whether to include dictionary contents. + + + + + Indicates whether to include call site (class and method name) in the information sent over the network. + + + + + Option to include all properties from the log events + + + + + AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + Renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + Layout that should be use to calcuate the value for the parameter. + + + + + Viewer parameter name. + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether to auto-check if the console is available. - Disables console writing if Environment.UserInteractive = False (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + The encoding for writing messages to the . + + + + + Indicates whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + Indicates whether to use default row highlighting rules. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Condition that must be met in order to set the specified foreground and background color. + + + + + Background color. + + + + + Foreground color. + + + + + + + + + + + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Indicates whether to ignore case when comparing texts. + + + + + Regular expression to be matched. You must specify either text or regex. + + + + + Text to be matched. You must specify either text or regex. + + + + + Indicates whether to match whole words only. + + + + + Background color. + + + + + Foreground color. + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether to auto-check if the console is available - Disables console writing if Environment.UserInteractive = False (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + The encoding for writing messages to the . + + + + + Indicates whether to send the log messages to the standard error instead of the standard output. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Obsolete - value will be ignored! The logging code always runs outside of transaction. Gets or sets a value indicating whether to use database transactions. Some data providers require this. + + + + + Database user name. If the ConnectionString is not provided this value will be used to construct the "User ID=" part of the connection string. + + + + + Name of the database provider. + + + + + Database password. If the ConnectionString is not provided this value will be used to construct the "Password=" part of the connection string. + + + + + Indicates whether to keep the database connection open between the log events. + + + + + Database name. If the ConnectionString is not provided this value will be used to construct the "Database=" part of the connection string. + + + + + Name of the connection string (as specified in <connectionStrings> configuration section. + + + + + Connection string. When provided, it overrides the values specified in DBHost, DBUserName, DBPassword, DBDatabase. + + + + + Database host name. If the ConnectionString is not provided this value will be used to construct the "Server=" part of the connection string. + + + + + Connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Text of the SQL command to be run on each log level. + + + + + Type of the SQL command to be run on each log level. + + + + + + + + + + + + + + + + + + + + + + + Type of the command. + + + + + Connection string to run the command against. If not provided, connection string from the target is used. + + + + + Indicates whether to ignore failures. + + + + + Command text. + + + + + + + + + + + + + + Layout that should be use to calcuate the value for the parameter. + + + + + Database parameter name. + + + + + Database parameter precision. + + + + + Database parameter scale. + + + + + Database parameter size. + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Layout that renders event Category. + + + + + Optional entrytype. When not set, or when not convertable to then determined by + + + + + Layout that renders event ID. + + + + + Name of the Event Log to write to. This can be System, Application or any user-defined name. + + + + + Name of the machine on which Event Log service is running. + + + + + Maximum Event log size in kilobytes. If null, the value won't be set. Default is 512 Kilobytes as specified by Eventlog API + + + + + Message length limit to write to the Event Log. + + + + + Value to be used as the event Source. + + + + + Action to take if the message is larger than the option. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Indicates whether to return to the first target after any successful write. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + File encoding. + + + + + Line ending mode. + + + + + Indicates whether to compress archive files into the zip archive format. + + + + + Way file archives are numbered. + + + + + Name of the file to be used for an archive. + + + + + Is the an absolute or relative path? + + + + + Indicates whether to automatically archive log files every time the specified time passes. + + + + + Size in bytes above which log files will be automatically archived. Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. Choose: + + + + + Maximum number of archive files that should be kept. + + + + + Indicates whether the footer should be written only when the file is archived. + + + + + Maximum number of log filenames that should be stored as existing. + + + + + Is the an absolute or relative path? + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Value indicationg whether file creation calls should be synchronized by a system global mutex. + + + + + Indicates whether to replace file contents on each write instead of appending log message at the end. + + + + + Indicates whether to write BOM (byte order mark) in created files + + + + + Indicates whether to enable log file(s) to be deleted. + + + + + Name of the file to write to. + + + + + Value specifying the date format to use when archiving files. + + + + + Indicates whether to archive old log file on startup. + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. If set to false, nothing gets written when the filename is wrong. + + + + + Indicates whether to create directories if they do not exist. + + + + + Indicates whether to delete old log file on startup. + + + + + File attributes (Windows only). + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Indicates whether concurrent writes to the log file by multiple processes on different network hosts. + + + + + Maximum number of seconds that files are kept open. If this number is negative the files are not automatically closed after a period of inactivity. + + + + + Number of files to be kept open. Setting this to a higher value may improve performance in a situation where a single File target is writing to many files (such as splitting by level or by logger). + + + + + Indicates whether to keep log file open instead of opening and closing it on each logging event. + + + + + Whether or not this target should just discard all data that its asked to write. Mostly used for when testing NLog Stack except final write + + + + + Indicates whether concurrent writes to the log file by multiple processes on the same host. + + + + + Number of times the write is appended on the file before NLog discards the log message. + + + + + Delay in milliseconds to wait before attempting to write to the file again. + + + + + Log file buffer size in bytes. + + + + + Maximum number of seconds before open files are flushed. If this number is negative or zero the files are not flushed by timer. + + + + + Indicates whether to automatically flush the file buffers after each log message. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Condition expression. Log events who meet this condition will be forwarded to the wrapped target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Windows domain name to change context to. + + + + + Required impersonation level. + + + + + Type of the logon provider. + + + + + Logon Type. + + + + + User account password. + + + + + Indicates whether to revert to the credentials of the process instead of impersonating another user. + + + + + Username to change context to. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interval in which messages will be written up to the number of messages. + + + + + Maximum allowed number of messages written per . + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Endpoint address. + + + + + Name of the endpoint configuration in WCF configuration file. + + + + + Indicates whether to use a WCF service contract that is one way (fire and forget) or two way (request-reply) + + + + + Client ID. + + + + + Indicates whether to include per-event properties in the payload sent to the server. + + + + + Indicates whether to use binary message encoding. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + Layout that should be use to calculate the value for the parameter. + + + + + Name of the parameter. + + + + + Type of the parameter. + + + + + Type of the parameter. Obsolete alias for + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Text to be rendered. + + + + + Header. + + + + + Footer. + + + + + Indicates whether NewLine characters in the body should be replaced with tags. + + + + + Priority used for sending mails. + + + + + Encoding to be used for sending e-mail. + + + + + BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + Indicates whether to add new lines between log entries. + + + + + Indicates whether to send message as HTML instead of plain text. + + + + + Sender's email address (e.g. joe@domain.com). + + + + + Mail message body (repeated for each log message send in one mail). + + + + + Mail subject. + + + + + Recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Indicates the SMTP client timeout. + + + + + SMTP Server to be used for sending. + + + + + SMTP Authentication mode. + + + + + Username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + Password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + Indicates whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + + + + Port number that SMTP Server is listening on. + + + + + Indicates whether the default Settings from System.Net.MailSettings should be used. + + + + + Folder where applications save mail messages to be processed by the local SMTP server. + + + + + Specifies how outgoing email messages will be handled. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Class name. + + + + + Method name. The method must be public and static. Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx e.g. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Encoding to be used. + + + + + End of line value if a newline is appended at the end of log message . + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Network address. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Indicates whether to keep connection open whenever possible. + + + + + Maximum current connections. 0 = no maximum. + + + + + Maximum queue size. + + + + + Action that should be taken if the will be more connections than . + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Encoding to be used. + + + + + Instance of that is used to format log messages. + + + + + End of line value if a newline is appended at the end of log message . + + + + + Maximum message size in bytes. + + + + + Indicates whether to append newline at the end of log message. + + + + + Action that should be taken if the will be more connections than . + + + + + Maximum queue size. + + + + + Maximum current connections. 0 = no maximum. + + + + + Indicates whether to keep connection open whenever possible. + + + + + Size of the connection cache (number of connections which are kept alive). + + + + + Network address. + + + + + Action that should be taken if the message is larger than maxMessageSize. + + + + + NDLC item separator. + + + + + NDC item separator. + + + + + Indicates whether to include NLog-specific extensions to log4j schema. + + + + + Indicates whether to include source info (file name and line number) in the information sent over the network. + + + + + Indicates whether to include contents of the stack. + + + + + Indicates whether to include stack contents. + + + + + Indicates whether to include dictionary contents. + + + + + Indicates whether to include dictionary contents. + + + + + Indicates whether to include call site (class and method name) in the information sent over the network. + + + + + Option to include all properties from the log events + + + + + AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + Renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Indicates whether to perform layout calculation. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Indicates whether performance counter should be automatically created. + + + + + Name of the performance counter category. + + + + + Counter help text. + + + + + Name of the performance counter. + + + + + Performance counter type. + + + + + The value by which to increment the counter. + + + + + Performance counter instance name. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Default filter to be applied when no specific rule matches. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + Condition to be tested. + + + + + Resulting filter to be applied when the condition matches. + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Number of times to repeat each log message. + + + + + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Number of retries that should be attempted on the wrapped target in case of a failure. + + + + + Time to wait between retries in milliseconds. + + + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + Name of the target. + + + + + Layout used to format log messages. + + + + + Always use independent of + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Name of the target. + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. This will only work for UTF-8. + + + + + Web service method name. Only used with Soap. + + + + + Web service namespace. Only used with Soap. + + + + + Protocol to be used when calling web service. + + + + + Custom proxy address, include port separated by a colon + + + + + Encoding. + + + + + Web service URL. + + + + + Value whether escaping be done according to the old NLog style (Very non-standard) + + + + + Value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + Name of the root XML element, if POST of XML document chosen. If so, this property must not be null. (see and ). + + + + + (optional) root namespace of the XML document, if POST of XML document chosen. (see and ). + + + + + Proxy configuration when calling web service + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Footer layout. + + + + + Header layout. + + + + + Body layout (can be repeated multiple times). + + + + + Custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + Column delimiter. + + + + + Quote Character. + + + + + Quoting mode. + + + + + Indicates whether CVS should include header. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Layout of the column. + + + + + Name of the column. + + + + + + + + + + + + + + + + + + + List of property names to exclude when is true + + + + + Option to include all properties from the log event (as JSON) + + + + + Indicates whether to include contents of the dictionary. + + + + + Indicates whether to include contents of the dictionary. + + + + + Option to render the empty object value {} + + + + + Option to suppress the extra spaces in the output json + + + + + How far should the JSON serializer follow object references before backing off + + + + + + + + + + + + + + + + Layout that will be rendered as the attribute's value. + + + + + Name of the attribute. + + + + + Determines wether or not this attribute will be Json encoded. + + + + + Indicates whether to escape non-ascii characters + + + + + Whether an attribute with empty value should be included in the output + + + + + + + + + + + + + + Footer layout. + + + + + Header layout. + + + + + Body layout (can be repeated multiple times). + + + + + + + + + + + + + + + + + + Option to include all properties from the log events + + + + + Indicates whether to include contents of the dictionary. + + + + + Indicates whether to include contents of the dictionary. + + + + + Indicates whether to include contents of the stack. + + + + + Indicates whether to include contents of the stack. + + + + + + + + + + + + + + Layout text. + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Condition expression. + + + + + + + + + + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + Substring to be matched. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + String to compare the layout to. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + Substring to be matched. + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + String to compare the layout to. + + + + + Indicates whether to ignore case when comparing strings. + + + + + Layout to be used to filter log messages. + + + + + + + + + + + + + + + + + + + + + + + + Action to be taken when filter matches. + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + Applies the configured action to the initial logevent that starts the timeout period. Used to configure that it should ignore all events until timeout. + + + + + Layout to be used to filter log messages. + + + + + Max number of unique filter values to expect simultaneously + + + + + Max length of filter values, will truncate if above limit + + + + + How long before a filter expires, and logging is accepted again + + + + + Default buffer size for the internal buffers + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + Append FilterCount to the when an event is no longer filtered + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file

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 JehIMke*o6Z-+=%C literal 0 HcmV?d00001 diff --git a/MTC_Adapter/packages/NLog.4.5.11/lib/monoandroid44/NLog.xml b/MTC_Adapter/packages/NLog.4.5.11/lib/monoandroid44/NLog.xml new file mode 100644 index 0000000..5eea9e4 --- /dev/null +++ b/MTC_Adapter/packages/NLog.4.5.11/lib/monoandroid44/NLog.xml @@ -0,0 +1,24212 @@ + + + + NLog + + + +

1Y1Zpae)8ejO+i&c_t31?)}J~_2LU%0QW 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 Sa``AWc^}OC)~+ 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

DRR`@_@r_FPg1K0g+oz&!*B- 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