From bb5617ac4c2981aaa3144149f1d2848d89b91187 Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Wed, 27 Nov 2024 19:49:19 +0000 Subject: [PATCH 01/26] added basic user docs --- docs/src/attachments/individual-filter.png | Bin 0 -> 10544 bytes docs/src/attachments/severity-filter.png | Bin 0 -> 14483 bytes .../user-guide/format-string-formatters.md | 33 +++++++++ docs/src/user-guide/format-string-overview.md | 35 ++++++++++ docs/src/user-guide/format-string-syntax.md | 64 ++++++++++++++++++ docs/src/user-guide/index.md | 49 +++++++++++++- docs/src/user-guide/log-level-filter.md | 15 ++++ docs/src/user-guide/quick-start-overview.md | 11 +++ 8 files changed, 206 insertions(+), 1 deletion(-) create mode 100644 docs/src/attachments/individual-filter.png create mode 100644 docs/src/attachments/severity-filter.png create mode 100644 docs/src/user-guide/format-string-formatters.md create mode 100644 docs/src/user-guide/format-string-overview.md create mode 100644 docs/src/user-guide/format-string-syntax.md create mode 100644 docs/src/user-guide/log-level-filter.md create mode 100644 docs/src/user-guide/quick-start-overview.md diff --git a/docs/src/attachments/individual-filter.png b/docs/src/attachments/individual-filter.png new file mode 100644 index 0000000000000000000000000000000000000000..60759ad304b0ce5846c5dda42f6f7a55900e4ec9 GIT binary patch literal 10544 zcmb7q1yCGO*6z&UF2REZf;$8P1ef4JgUb+Lg1hVBEzAKVgDl_2Uw-SIGVRxNxovKQYY*lj5s?Jh_S zv8|I2dYmYt$Eeq}kU6gLf5{~Xa7YJ{Ofgy#BcoK#PZ_7F^ttA0#*(!5Zr(1hE%&ZL z?jt(W2taD3`Y?A3$ys(=jE9}_;Y(aJriQ($;^o=aZ(DyfH> zEDrh(O}M|>Qdkx@7#!<~^R^^SHcM9~Nb%SA`&Q|Z1yQ6#b;Qb9OCqk}3;46HQ$~m1 zDneh(lzCEehpzV}?0k$}g%%;GPva(*K|z`l+kH;U25}Qs5Tp@A${ofz{X(b4|n7FQclI$aetT4@Jo3t9nAZcc7GF-%%oS`lY+ zn6QS->wlR8XQFhLuC9*4TwER=9-JP0oDRIv$|BNGJ;bP`&<>+eVU{CuvuIW1mH&;Rani+)52Cy#>x(G4={%quK=IOKkolOdj2!xe_87O$C8Ji_rERw ztLJ~WeCuN2EbU+iOzA52pOyKS@qc&z%TR>t@yY+o6aRGcKdu6P7Q+ z@qs`L$_g@)TAttoBeXQ4?&(%6CH(|i^5;s!=uIUeYWR_K9TFeeFD10_@llY8wS1%K zS}~Z`tT*6`ZfP4NDq}Jz(zMF!yGkt>wea%0FcWJJWMz3;deJ zX7(#>ZkdVd_AB?ro`&Tkl?GqYY1{%fVg2T|p+t5mC>pwNYbKvkk>JB+dj$=qmB48h zMe%V_D9|yU;g9DUAXxfNLBTt)u4_!4MJo|p4|e^#L~vSRN#yTe24Sx)%B3c+0j)YS z&7!=0Jzn)9Y^S1=NarIGMMR(`1xV7+0EvFnlw|u?w9aP zh2A>JN`s9Kg@7$t@6`g69~i>j$}i>XcX?!beS12xq&O9Db@EDG|-LzywZ%HIJGQv1!M=CspOkDW2zU za%ee5Z9VG5IveC0X(}}z$;swk)hvGF7Cp1FKi?2NU1=cK6^^$($86AOo6Mw2Z9V=O zqjmC>;d-~c3cb$p>SR-BVL1C$!~Rd5Z_XC_?f#+4>;yu9%r}bzEu@d2&A3XN^Kdg58kY`#%Bk zM(_UdgDiGkHD-Prb^TYeiKpVV^AoEMj(Um5r0@UXqJlu!PfmE-^$s3cbvGd*)F-a3pQN@;A8tYru z=^z?2A~>BCk(CBZ=l0gZ1=w-EPN(r(Vv|B(!n_A0F)JqManp?NkGi1 zwHgi*;o1HBO%2z4zTQePMY`VMWTVeFTRgxY_jp93)!Xf22VcF})hdolzn=NV=?SAU zv{>A3zMk@MC%#II#Sd^|NUmwC_qk!tMkAS-GO~+%Ig?HI@U z$h0ZFvmQIc)qcw>{_WGC&CD04+8Xvjc89jBA|AE|tBJ6e>T8Fe>~y{HCP33BPLh6^yG&Ig?4190C|MGT^NX6LvEV!ju1X)PD|H7{{Lm%BQ8Gb zE`hg+7LH5yT>1$W3ilcsUrY{?JynAYrg$0>zJ+Ce0SIR4Gr1VVk0y6NwPVZVwy3W3 zc`A&G*Brgl@Y}czpQ9Fb2whKC11$xZUm_S4hj6o7Pj&+-AocicgeKrtGS~l_g>S1Q zM$miuyNAQU^CwM+BGue4i4E1Tp^QP(PqMnM&p>>po{sKo?9Y+mx;5`m{4VC+>tkGN zjtY{;n%x8c>6b3zEf4oMzD>kvHYtY9t_thrx~<;){C4wN496b?9ep>4vorS)SJIS8 zPhZ+o=K3N3B~5dsg(AETTmRO#G>v}k=6E*v62koi6)iN85I=U+oG+7x;xdHbIQKV9DG4KPUKm+7&Ox6pKli$!rX|8G<|6O#!i>2U?@?y}Ulsea! zA>N&+X!%Iao?a2pfX9cG=85j0X~GkXaudf`t$uTtpH1LwV7MP z(mEZ76htpkMyiH-nQ4;CH8}&RRx>!W_v(L%R80#wnCCQLNriEgOR{<}Xam`wD9i20 z7;c58bcBNULY=i;?1%GWxek{fQ61<+(A%AG!dbz7{yZw;xpWvd@`d!Ps7q*{2&-2@dF_Ucw&cZuw10|o{qqkNzJ71O_bqF%p8B;p$jnWO*Y88 znt>KimP7Y!b{Ua~&P1)6u^ViMd1*R3kH{ha=_|R03<{zT=nBI*10u~yQt|S3kl3Zx zIgMlLoTPaqwj+^5eYyNXA}b`bAngNpbl@b;J?U(5EQGEJPwW!T!g1^x8Ece)w)eLQ zv4cYQYVPAdpbi`A%4+5N?g$-mkWm$Hqu^Qn~c*5FPGnn2b8k7jBCh*5lo zhp+x()Qt$SZ^~;GN{$tg zChn;cb!k~AbXLZ!->9-$ag;)WxW#QW{+Fh)yowee2b5v`AZv-5-7F!OFa>qT3ym@2 zRa&mNy1?8)RsuK*^h(U{TCF>Zc;{Dlw1~lA27mO3@UPqa97(yIopQC+j*bNg3g&40 z!<|F3+a3v(kaNiEcxn|SRP4Ot^`_ZB5CmV$$!$Q_i(d<44A++AR; zC=aQf8%$CzW94Gi+%0mIn&&}VrIus)u2&}(V#geyQwzz=;=r!GF*%y4S0r`+ByOj7hJi{Zaw9pS=U+|R0hG!xqIGZfB{A)EhGKn& zn{QZ$=Aw)Xp-Tjg?9bITkU-~ruXl?kyIjF4x7U)rjB# z;+D(Rn=-XekOrHX;mVhasx%m*Q1WhL@{0;!HPk%Eg6MKJC4h6^`i@{Uz9;-J(T#K- zGgM$7P-JTamidLtmU57Eyk8aY_u+err%O~LBX+Z2mto(;MJelFyM5%KRj9QFx2?ZQ z4c5wsF2hgClyd~sre52eZVmCzJF9w^VVgXyoK=Lc6qyLTw448tWqLG5>!}9%=8(#1 zwAjcCa(6tgGWxFlwtFzj@8+VxwO~pe6s_&gO^eD$;QqVDVaw(z(y&;TFZ-u-zW37z z*i`60z+Z#O7&x=X3`bd3>9a~f*Tb4Jofa>~B)HSL=?24%KW%ihe zidx^~Nj6Y)VqjxgCWO13ord9je(SruFV1s9FOmdu_LH7TZBZaBTMN=v@j$A7KGifh zmj}Vh*CJYafSB%}Y&S&@POA)~KcS!pMYr%Yyp6Z5!`q5~OY(3_8f$#@G`rQci^ffb z$;FV}ttuszBDq~BIw|@{7opClOS>9G4wl~_#%M>OMB%REOI^LhaNG`1+P0}wKhg@HoN)O{ZWoPtyriXSX zG9B7gQ_6l!q(12#U!0q;ocvM6eCT(z6yCz&p0LFdj(`8)t2N-)bW98;qnWh-i6ir)P+rsht z+Bmss+qs>@=m`6ZGnUDGJGor9&0&{ZEa=XYo&BZOBtn6Tg0FJEiiHCoXU6wL=R)k4 z+GL-+j{n>J^O z@PV63xH=b;h%^5<>Y0kdu%QPTemu39OyR&=wXrx1Dxu(xz(eC=biY$Yen|C^-em^= zss{a?Z|WakA=5#5;uL0f<9wnNb|dW@^I_-r>o3iElwI!^sbExQjNLaW9kP)-GEN)V zjhn0FIfW$WK51L$UtX7*X^zq})T%Fe%#80EdE_8EMai6;c1m?tUj7~u<5J%&n-bA} zP%hsV9kvgRA}T~#8O*oQsnW0}WlA%?Km1M5He^y=EjG_H6PMKiHDV7uUpCs-Cv@R$ zs%FuIGa(1YVoV&B9Wc% z`cHD@IhP?Wrk&%j0gj?pOGPw)bF{}khH>N`%48a5Uc|I z!aWGrrO>I=Ra_8o`1~@gEp>w=VkIS1Z)^+{Tsi$mh!~diO(&JkLh)s9X(f(O2^cN{{v^n+R*zH z{|m}*bP&Vp+yWSPIjZ3<&LSi(qXTkSv{By=aD;zsCzyzQ^SsL4BGBOfWha`4(d_rD z{H-#q;EkAks*m*(n?&D7(Fzsd6WFL97Dn|YK>yDd(jLxpKEWNA`>_Hr(I9LnIgKQ{XAUTE4C_N^O-Ml8#1B+H2@ z^=6^_RT%FX%_N`uzV3{Aqm5zM_|vjO!+-qWA+*C z=SL2MrjU>j`N^gtHUa>~Zeo45@@EdQXNqdf} z1^rs8iT~PJ6fs-#jzwQ$C_rv{XvYX$NdZBrSj6i@Ef9k8JCZ3UFAV1?V+MING283I zwj0iDVT*%6Gov~`V@!l^Mz1K3Sx<~snHJ0S)poAX8lW98`8InT4%f|h1bYa!xbM$O z0@?~a=rzX28t?O6b--0Sh(M%Ub*p8m!H=?0L{3V7Mn54Dv+E`-2R!&eJVKXbK``f# zU+e2uKzz)y0h9}oS&-yht%cRzbR}i{nH;s34BOR@$S24~a5g~ZsJL13Sh3pKgIRHy2hvGlG))l@3u%3FS_18G^ zAZpaRlg)t^nccf8hxR*dBs7@Np#4O#YB9h>o2SHVrr9ZY-XX7Qp8x8g3S`b}KK$#)v3qzQMcE5M6dPgDUc$1NBhr&iPG*qV#}RdmTHd)6 zk5qoOv9TNFRD)_)8D|$Mr*~Ge7&X5LmyISVY-$qB;5LQ4y0e-n+PnnFrORa>Q!aNk zh|{;ag43WeW+En_I!3@|I%c3#c}D@%(&l$l%k|!O{Oq&C+bj?}Xg~*0v{Dr=^`cye zk>Y&VbFHR44^G+<0eBBs2Dq=)@xaR$^|clQuL1cb|52yxOIo&)1eQ^0s?4is z|HZUbcWc2L;ydqsPc;+wm0Yf`!~$`7c}wVgRsWL-dgy zk9$T13PZapu!;C)$PorNz(MS~Sc?9+fbG?b_~*c=VBKnxudmzHx;dkGg|_ zJ~wu3v-2h z<`{!hAuJe$dMtbjo+vr$qB{+B)ebHTevrFjApcY%%ZYB}XAJY6rW`7}INd z5Ef!|^>|#9?^6V&kh3L&siRX7K|Odi4#DDhq`VqakPnepM4Lo@l!De4*DsIPSpcnA zBswq|7lcG^yxii|AncS+8SZ_o3L3^9#a~r(%ocWgLB+-iB&dkpJd4iNUGd$Jmr+PV zPdwWa;*c8c78*CZ>g3`m$E=kU(fH^*dyRb#_#sTQqJI~=Dnz3A$9`4>Umpc>?jm(R z5ge!>0qcV3LB^beZ+4Tk2v+ffODu+x+KkaQ9ah@1JJNXzZ)|YEFF+25%dI(4Yl5Tp z_rPv4*t!0eMH!=31{G>qFoLv#ULmMh%^tLk1rd-LMH4w2l~#`X6+aB%wZ|GNeD*vP zli0Z&PdIN=IhB(N(Cu>5BnK3<<8@4QYjq=H>#mb%V2`x?j9=){_e};p`L6{l_2GLRXf$W@ zw%qG*3yK9yK*cL?*&ePz`ZBVrgmzC3LN21_R(*;>lochQSU3cT5_`H0*2Iqzt+}Co zigAubc)|(dwvHSLUTTfs0z;} zcPo*KJ>0rb03sM^bU21%f@y$qJIA|)U04UxzB>zS+2aqQLOH#gn1X@+03>PiX1L4gyKbZmW9KgZg4b}tTn=to0 zsr?bHHY{UUKLK#U2N~0E0UQsSC`B4eJnjMJ0(~1*z=Zeuif52o0HwSf;)2+gF&sl1 z%y10xv_f5s5@$J%51n`9jsl@!5RY=rl0eRA39T zD>&h>{UJv>YrKcW!C@RIg>2zS3wv^g;nBP~Y&pe!lK1-*Zh*bPBzW^18Bh|q6>}~- z5JQE?#Z@Ul%*l-+;pmqe2Bg8^u{3Ow|bVJiTu#5&$5# z1hi@_sS6PHRoN_hV#o)Jz4vE%;*c=7oAms~L`w(1yC3{wARJ))`36w>#2ATCKT*kV zXE8rU1{}UaAsD}I#^UqnYp z393a2Jb9rMb&fBlR|gyN{0$YWFCl05`KbI@)9XxKhCLUsz?AymLYLD? z@IOPB5*WrHRH<4n|L!L{lm#)01;;k|5Ft~9(uv7^7gN|Cr#zup1r4l*3|cya)5qvO zcsQ^ipl{&Ha1t+shG;D|)LU(*>TTEa7;LQPuMjb-Jj>C+G~^N|)6wQ=X~j{ow5Olx zoj#a?2ijRRpwUiqngVQeNLts%y1c=qs361LCz-!Uz~*!xEWk=IZa8LJDyHeU7K<6P z#h{9qQ}ByBx$I8$`wUEa8|JKq%)6Tax9qHDlLZ_^lhjd0XEl;?pdw8^PnmiXDx9bU zziM17Yh04~T`LN=*!2uHL>K=@I104nr{G?RUm$F{Yf1>;T}@3K*j zP8~tYvEdY&F*<|s3jr1@`V5RZe6gG5J|XkxOGu@bU6l)8R(zMvuT$cbCd^K?{Np1D z(``xABzUz~^<6w`CAlau9dqr7ka#HE{? zXK5P_4$L>y92Q_TMbBG9Gcup;?cRsy%%P59i)1>X=qX%9yYD5IR3?5oI+6OazLARN zfMayfl6{|jg_I&VmiIK#05uwy?AphzlG4jgU}C3$VAM?g)81=wzGa2v_O)ub07-Ly zj2XexKi#jv3JnSYRTLG7!Ws3M94SBYobk%I%%&@cfsD}_#W3?ygV>ZBM>AjDMwXaZ z?&b2=EN6R%Qw==v%`dmqkKHlH!j1WB!&((+0s^jc$;H#HRjqy5!DJML@K1+dtt%8Y z|0>FL18#jy<(Fai#ptf#b2iCT`C&N&XacE=)H25EI&1+|#Qz2IL1X@b_Eh=HNDGi= zESw-lV!XK2#^KY~mgO@Bv3e5uU7B8J_^0n>9|GaBn>dwoQbrm4d}#x<8Ftc3^Z^5P zCsm8{K1PF+7^ch%k+1gW1Yn?0g&Qlas zQ}j5(-aK)7@*wv=i$afO?O3W;+9o=+hUK^-54We2g-WFHv|7S_1o!7NCNHcfndgBD zXzh&OuTD3`2{#V6>}K(~y%Y2D)|-oo78ES2v0sIeyAOx?3|XjDe#Yy0;pUNA1L>Ht zDL?(7Bx)w_LVWlP8yXci6lHI8br1YP%*Sfj^4QNAB38QUVUkSw|OG?8QKl-=fx# zy#~+&3jrFbvECDl(NYwJPFm%_!zLF`y?I>=8|sH&tvuYz0ksZOZ>MVX95KHPlLQc_ z&(9*2%(U!k*PZb%53_8ygviN(jZz-tpA{$%lV`rBHRxzug9w}Mw+FLF%F@2wf=QFR zAl#0rL0r^)gfOn#cfY1|Og8oM0Tw8N0O-r`3wO4 z-s`7rd=p|i%hlXZYWef_`r@!2MxZ}Qr9@W(tO5LV+cS5RxYUnpAOo{cQ zKh!_Z_hx`>%GEcvkbn;ZxlSoBi1!&#+ntKDz$2c3a% zyKQqBVQCgeDKx9I{*(DKsoDz*sr1hiw-WW>S6{H2mzvb2{RO*}KML3h=c*p7{x^S{o^K={?^AGTBgvO?5fx$V+2nW7tv@(Zt zLRJyxJh9)gltPJqte4vOgSwvmApsGoG|U}|k$SGbM?bZUpstwRULN1B@&L(jAqlZ* zl^bf)MPPEQDQFlZ5rMWol6l3And1h2|#W8Xxn~{^6{++pnf9< z@YByg0b&ApIb}!*4}l^_6QpNxwA!%`UH21BQwP%JZlpm> zvwKQJnn*sV*|Gdfq!l02p&gOLc*}Tce&ogd%JiaZS&KUnP)Xo*NNIE(dbInX(@DcD z%$`?d0heoNoki?_)@;{fVb}CKIVXx)tsGD+c!$hvBix0PP>%#X_mo)AJ!$#U3cN4~ z^>3W1v36`KQ184aB9DC?wTIvaGti=HCd zQH7#^25n0waL|heW6gcC#Ds#bT%OZUlmF$KqY{hNF|_xxzO_EI1@RWyn}!CaSf*|6 zZYI1)XA9rM8Hy$frzA&Z9b06|ElU45|7IfCJ9K9h{_fWH!m~!i%{87g>f&+N`)lK^ z6P?D2J^407MmgOIyc4R{*OGbM*MGK9vEOaHb+jZin!&)`=X#0livOxcTV1A~vH!|A zzWTv&U{RxscSe}s@OCE8Q z5b#(}WVO;X@k~vzV43ZEN8W}sdx$={d{XNjX|NeQNW}a66b0mA0e_a-EfsB7!7?~NE82>#t zFqH3aEsvs=rMno{}{=}@t-6Aqvd}cspewl zEb3qf9MV$ofh^KkG5DoWCW?wAR~cfORHIcV zG3C6S?Y(_t52?=Q;kCI+xlKwc}aQ_?#DLoQNbD5NnN-@XYw5JTOF5596UWrn#Pc=vb{2>Jf zCBfM|#f2~=k?1q}>(xQGMth-)0#G_X5s;w9Gr2`Is&ttfeu~(tY^9DBgmmAXER=cQ z9oL(Uroi=BOk~T;e`lLo<8?b0J6mojX!E!@wy(+Laf_PaayiPBvUhL1+5HaCuEcT!Kvx3P7oKUt)Gg(MIEi3Urg6q&A=7JeWj3fuJ7=9IG#eQ)@^aF_kZ<%8zSVpzu1^~ zE0Rr}?;EK9EMiN@Q~QVrfk~s9J71~eg6ey=%-%G&++c%!cRUvzu~(_x5C!6}Tdu!d zvdEd5EmN_Y$mU0T*$Uk9n=X_t6Z`T3?S)pYs^4BRjvz0IT17dLOdQUuH&ejxd%XQx zs}o}!6VouI&;4m=L=+2i8TvL{EvB>cJuQ@ez^j`~G7Tm&u>jw+_v_7s;B1GF$Ndl! zH;YQGvAFeO4XNMT)4{3_Z^WO6jR0zg^>z#ljNMc5bQUw?rUJ?M>lWoAnP=^u`?D2l z;Oj)tGmx6JPs#=G}>eBJrBDH5pBOwD(wF>>WsNI@{C1;9LYn%>SZDr;?s_m*dB-;T5#0p zXhyj3jr*Jxx;S3?tAPToTauWN*L``cnU*&R_aieNQpg;^(&4#n zz(vP{Ck39>dYealN7jsp!t*c694^VC1%01bL4h7$BC|fw`{h<2pRyxEj&^BZ`?95w zCyvIA&4II+S_#Qg(JWl$`(iAyX(^$!Q`~QcqW5e*^b*0K-O=nNlkR+!M^kh}X-@-N zahLN|ZU%$zY*uo#*`O7+!;Xwv$}jW*E4TJKUgU11jhu=NLf^ALHbR$^i${_|#C=P| zkx1DL4kR&@hYDSsx5cJTCIL|bMWjU+%hj zBq29XmyIDJDHllWmvsq!oP)Zl5)ddSW5RB-fFCLpEh?L>} zS%U9SgZJW-_x-6B9;-PLtz~)SqDV6k_@Bp1CwsG*O~S9|C)llL4PzPCdOk*jRz7Z0 ztQ?Yq{kA@(K!GGt72QRRONn#@za=F=;pC82Iaiww?K@|owv)|~fJn^d3 z@AwXc_~Ld?8xu=ii}B3#o9?%@#dFWzQ22HauKMb{AMlXkW7VC{GVzGfwR9*%0-eCt zh~xN+VINLtL>(7yQy3odCtnqkYniYuj?_hNNyL49;^JhX1S2w9Fz`6@fbcuG#Li(+ z2!?+)Nx?4bg5VElN>FKyMe<=`rbQEzLm<;0$z5#Gds2UNM1#%pjpqm|$Z*Q;!CZ^5 z!1bAzx@{`LOt*qcHICCp_{F0z*xXMw=hu|&xlA%Fc8qRWXBhY!(+_3Wi6p^9ZEgz{ z_jMa>ag7%BiexbPiA!CDj(*CfGW^g(RvX2nRj-j?hY&{m;j}a8?dgHV2X*PlgeUb! zjI)zDyW~v7R)L)6C_O6hyHCg@6S-uZ>8p(z)$nGoAs6Zu|Jb)$I2b)9DhK1zfW9!@ z>L>?3lf{h!Nz?-LieMhDG*{Ao4tURB^Sp2`&nMM}RL2M$bU}ojzY{d(wXWyPa4sRQ>LA-!tE< z1FeiylAA@dLma9BoA;RZoF-;Oj|~e_M=e))vWwfM8}|N^r+B!>I)zLUiPTZ>Er1Sk zk?}buVTpaaX^#fE*?S$9ehzE}x;J6QAPrPbA}EJjl7lcX3Zn-kG2w}mb73W_k(s^5 zs&$&|2}$vw4kM89B~IomcjlaZL9D)yju9TSllA8-O^l;EOJdfY&nMI!)=}JQ2Z38~^{POsGth zgW6!w8kInFw<;^y!!Q;c5V1`pA$eX*1T!(Rz>U&rcKV^rHZ{~JBP-TLAaZ(WLO}{0 zB!%Yrcu8twWg=@#ivx7Z!z@IyM^pUchYy)ds}c9`Za-ZJKYHCgp~i)2F_J``M5#bj zuHVt>yv_R2DGv;yY#j-gr3PPBB-`&^ORrT!Jg^G;o+jdBg7Q+k^BzLRc59PPvl76S^ktLF=bo-ot1i6N z{cPk?=uX+9`Qole(-h}Dc}>WWEo(1NH!7N%IJBW~wQHnQ{=tEWP`O5W zb>{NH>kU(Zxr1k^c|^u+poKoCgK@(78|`LCQsI5dPlXcRo+Ls>Vu{OXk`L!=v8e)0 zvhimw!xW+lWC^?;_N|Uv5Npj&As9h|&xhm@bWHK;yRf)UW7+&Vs3BWVvWy*t29gUu z9X154m+Q-j2t0Wr?AUv3lBB)3=KpdzeU@)*0oa|MH z`97b}<@d1W(V{UVYIMHZ!dIBXX7vF;nV+F!uVY+Qv*CRA$8fW&`{KmecPaW|@Qk5? zaL6tJV0Uv|m)Jhp94FU=XWAd-U28mWn@OWq-f!%S&uL#6j*PFIFZRU~Di_w%SP3-| zfN?(&y}b)s&9AlxtbkZ?8Uft_;0PYdtvVa8_%qg03UUQa&G<;b`o^I3JWF6%rEJ#y>_@x1g`~=|{ z9|K)=vQRx!rPro;(W+XeJX@v58-bz9RX{!*wZ*gUwv)x`?FxE2oGNHN?C=)a)Z^UW z%<;R&?YJJH<#UzH{F?rm^|f&auepYgp|)c|}m#m;P}@L{FjT57&lOh|pe1U^#?9qLC6kVE~A z&*)IbUx1V|rCXX!xO)T+uC{WON0~#IBn2q`pSv#J>p1QBXwyR4sxQSnb`vc*Z5{>` zV<^3PEGLaYlBlep>8#~i;_v*%2eZR0puwwEO4~YpseIfSQo1<9EQl$<MRbI=V-H~MsC?`AEe88 z`$?*o8|`#b#0H3_fDF;(DTUc&ux2%inSm`KZvo@O2a!cM|H)io35P~e1+T>#Bio@r zE~m7y_{0d&ObI5H8r4Kb0aga-|4NBVKWFiv2@Li3!T2wh5=CLxGAmZ~`!6cC)I_xu z@t5k`>E{UGG9`^9Rf`GA6DhcuE0olJD^Z%aml(Q-4&uQ`9UvEf#)U3VcZM$oJQafO?AwqIoqKCjdK0^17cI%I}S)GO7Uk z_noKl6*9!DPnYCQ$#}kD2uEr~W)~4};@3|;&$+S*B;c^3ZT|czy**y?VM3uKGDc=&z1_@%5O zBYUHaU9O8zL>>J4OLEzK>H5A`;;9`Uhfy0M0T_VRzkttf-9KGDYy#xi?NfZJ)BuYy zfq)GF-p$`9bE0s^v4~i7hOwnU7WN^DF`otGlEY*K5#1`PfRJ%~@H;~z9>(Y%0DK_t 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 literal 0 HcmV?d00001 diff --git a/docs/src/user-guide/format-string-formatters.md b/docs/src/user-guide/format-string-formatters.md new file mode 100644 index 00000000..2cb0e433 --- /dev/null +++ b/docs/src/user-guide/format-string-formatters.md @@ -0,0 +1,33 @@ +# Formatters + +Formatters allow you to transform how field values are displayed. See below for a list of +formatters. + +## Timestamp Formatter + +Converts Unix timestamps to human-readable date-time strings. + +**Usage:** +`{field:timestamp[:options]}` + +**Options:** +- Accepts a format string specifically for the date. +- Uses [Day.js format tokens](https://day.js.org/docs/en/display/format). +- Date string must escape colons with a backslash, e.g., `HH\:mm\:ss`. +- If no format is specified, the default format is ISO 8601. + +**Examples:** +- `{ts:timestamp}` → `2024-11-27T10:30:00Z` +- `{ts:timestamp:YYYY-MM-DD}` → `2024-11-27` + +--- + +## Round Formatter + +Rounds a numeric value to the nearest integer. + +**Usage:** +`{field:round}` + +**Example:** +- `{value:round}` → `5.7` becomes `6` diff --git a/docs/src/user-guide/format-string-overview.md b/docs/src/user-guide/format-string-overview.md new file mode 100644 index 00000000..c9e2e9d0 --- /dev/null +++ b/docs/src/user-guide/format-string-overview.md @@ -0,0 +1,35 @@ +# Overview + +The log viewer can accept a format string to transform JSON logs into human-readable text. +You can select which fields to display and how they should be formatted. The format string +input can be found in the settings dialog. + +For example, for a JSON log with many fields: + +```json +{ + "ts": 1732733160216, + "level": "ERROR", + "message": "Failed to process payment transaction", + "trace_id": "abc123def456", + "span_id": "span_789xyz", + "service": "payment-service", + "environment": "production", +} +``` + +You might want to show only: +- timestamp +- log level +- message + +You can achieve this with the following format string `{ts:timestamp} {level} {message}`. +`{ts:timestamp}` formats the timestamp field (Unix epoch) into a ISO 8601 date format. +`{level}` and `{message}` display the field as is. + +The log is displayed as: +``` +2024-11-27T18:46:00Z ERROR Failed to process payment transaction. +``` + +For detailed information about the format string syntax, see [Format String Syntax](format-string-syntax). diff --git a/docs/src/user-guide/format-string-syntax.md b/docs/src/user-guide/format-string-syntax.md new file mode 100644 index 00000000..d5fb269b --- /dev/null +++ b/docs/src/user-guide/format-string-syntax.md @@ -0,0 +1,64 @@ +# Format String Syntax + +- The format string is composed of arbitrary (“static”) text and field placeholders enclosed in + braces (`{` and `}`). + - Each brace or backslash in the static text must be escaped by a backslash. +- Each field placeholder has the following form, consisting of three components (contained in + braces): + + ``` + {[:[:]]} + ``` + + - `field-name` (required) defines the key of the field whose value should replace the + placeholder. + - Nested fields can be specified using periods (`.`) to denote hierarchy. E.g., the field + `{"a:" {"b": 0}}` may be denoted by `a.b`. + - Field names can contain any character except that each period, dollar sign, brace (left + or right), colon, or backslash must be escaped with a backslash. + - `formatter-name` (optional, unless `formatter-options` is specified) is the name of the + formatter to apply to the value before inserting it into the string. + - Formatter names can contain any character except a space (’ ‘) while each brace (left or + right), colon, or backslash must be escaped with a backslash. + - `formatter-options` (optional) defines any options for the formatter denoted by + `formatter-name`. + - Formatter options can contain any character except each brace (left or right), colon, or + backslash must be escaped with a backslash. +- Finally, every format string contains an implicit trailing newline so that each formatted log + event ends with a newline. + +For example, consider the following log event: + +``` +{ + "@timestamp": 1427153388942, + "level": "INFO", + "thread": 0, + "latency_secs": 56.4, + "an.odd.key{name}": "org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from + hadoop-metrics2.properties" +} +``` + +We can format this using the following YScope format string: + +``` +{@timestamp:timestamp:YYYY-MM-DD HH\:MM\:ss.SSS} {level} \{{thread}\} latency={latency_secs:round} +{an\.odd\.key\{name\}} +``` + +- In the first placeholder, we have the field name `ts`, a formatter called `timestamp`, and the + formatter’s options which are a date format string. +- The second and third placeholders simply stringify the values of the given fields. +- The fourth placeholder uses the `round` formatter to round the field’s value; this placeholder + doesn’t specify any formatter options, so the defaults will be used. +- The fifth placeholder is for a field whose name contains characters that require escaping. + +The formatted string will be: + +``` +2015-03-23 19:29:48.942 INFO {0} latency=56 org.apache.hadoop.metrics2.impl.MetricsConfig: loaded +properties from hadoop-metrics2.properties +``` + +For a list of currently supported formatters, see [Formatters](format-string-formatters). \ No newline at end of file diff --git a/docs/src/user-guide/index.md b/docs/src/user-guide/index.md index c79208d3..9ecdda6e 100644 --- a/docs/src/user-guide/index.md +++ b/docs/src/user-guide/index.md @@ -3,4 +3,51 @@ This guide documents how to use and operate the YScope Log Viewer. Use the left sidebar (if it's hidden, click the {fas}`bars` icon) to navigate to specific docs. -More details will be added soon. +::::{grid} 1 1 2 2 +:gutter: 2 + +:::{grid-item-card} +:link: quick-start-overview +Quick start +^^^ +A guide to open files in the log viewer. +::: + +:::{grid-item-card} +:link: format-string-overview +Format String +^^^ +Docs for format strings. +::: + +:::{grid-item-card} +:link: log-level-filter +Log Level Filter +^^^ +Docs for filtering by log level. +::: +:::: + +:::{toctree} +:hidden: +:caption: Quick start + +quick-start-overview +::: + +:::{toctree} +:hidden: +:caption: Format String +:glob: + +format-string-overview +format-string-syntax +format-string-formatters +::: + +:::{toctree} +:hidden: +:caption: Log Level Filter + +log-level-filter +::: diff --git a/docs/src/user-guide/log-level-filter.md b/docs/src/user-guide/log-level-filter.md new file mode 100644 index 00000000..5eabab02 --- /dev/null +++ b/docs/src/user-guide/log-level-filter.md @@ -0,0 +1,15 @@ +# Overview + +The log viewer offers two ways to filter log levels. + +## Severity Filtering +Filter logs at or above a selected level. Click the level name (e.g., INFO) to show all logs at + or above that severity. For example, selecting INFO shows INFO, WARN, ERROR, and FATAL logs. + +![Severity filtering](../attachments/severity-filter.png) + +## Individual Filtering +Select specific log levels to show or hide. Use the checkboxes next to each level name to toggle + visibility. + +![Individual level filtering](../attachments/individual-filter.png) diff --git a/docs/src/user-guide/quick-start-overview.md b/docs/src/user-guide/quick-start-overview.md new file mode 100644 index 00000000..5e2b14d1 --- /dev/null +++ b/docs/src/user-guide/quick-start-overview.md @@ -0,0 +1,11 @@ +# Overview + +This guide shows you how to open local and remote log files. + +## Local Files +To open a local file, use the folder icon (📁) in the top-left corner. This will open a file +browser where you can navigate to and select your log file. + +## Remote Files +To open a remote file, append `/?filePath=` to the current URL. Just replace + `` with the URL of your log file. From 28067b6892dba0b38c5bfae72abaa9fdad49d088 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 27 Nov 2024 20:24:31 -0500 Subject: [PATCH 02/26] Refactor user-guide/index.md --- docs/src/user-guide/index.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/src/user-guide/index.md b/docs/src/user-guide/index.md index 9ecdda6e..3aadbe8f 100644 --- a/docs/src/user-guide/index.md +++ b/docs/src/user-guide/index.md @@ -10,21 +10,21 @@ hidden, click the {fas}`bars` icon) to navigate to specific docs. :link: quick-start-overview Quick start ^^^ -A guide to open files in the log viewer. +A guide to viewing log files in the log viewer. ::: :::{grid-item-card} :link: format-string-overview -Format String +Formatting structured logs ^^^ -Docs for format strings. +A guide to formatting structured (e.g. JSON) logs as plain text. ::: :::{grid-item-card} :link: log-level-filter -Log Level Filter +Log level filtering ^^^ -Docs for filtering by log level. +A guide to filtering log events by their levels. ::: :::: @@ -37,7 +37,7 @@ quick-start-overview :::{toctree} :hidden: -:caption: Format String +:caption: Formatting structured logs :glob: format-string-overview @@ -47,7 +47,7 @@ format-string-formatters :::{toctree} :hidden: -:caption: Log Level Filter +:caption: Log level filtering log-level-filter ::: From 637b520d70d20e742891bff60035096973cb9da3 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 27 Nov 2024 20:25:13 -0500 Subject: [PATCH 03/26] Refactor user-guide/quick-start-overview.md --- docs/src/user-guide/quick-start-overview.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/docs/src/user-guide/quick-start-overview.md b/docs/src/user-guide/quick-start-overview.md index 5e2b14d1..1a023af5 100644 --- a/docs/src/user-guide/quick-start-overview.md +++ b/docs/src/user-guide/quick-start-overview.md @@ -1,11 +1,15 @@ -# Overview +# Viewing logs -This guide shows you how to open local and remote log files. +The log viewer can open local or remote log files. The viewer currently supports viewing [CLP] IR +and [JSONL] log files. -## Local Files -To open a local file, use the folder icon (📁) in the top-left corner. This will open a file -browser where you can navigate to and select your log file. +## Opening local log files +To open a local file, click the folder icon ({far}`folder`) in the top-left corner. This will open a file +browser where you can navigate to and select the log file to open. -## Remote Files -To open a remote file, append `/?filePath=` to the current URL. Just replace - `` with the URL of your log file. +## Opening remote log files +To open a remote file, append `/?filePath=` to the current URL, replacing `` +with the URL of your log file. + +[CLP]: https://github.com/y-scope/clp +[JSONL]: https://jsonlines.org/ From a3d053b94786e9913fc6eb35eca34e51767899a4 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 27 Nov 2024 20:26:06 -0500 Subject: [PATCH 04/26] Refactor user-guide/format-string-overview.md --- docs/src/user-guide/format-string-overview.md | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/docs/src/user-guide/format-string-overview.md b/docs/src/user-guide/format-string-overview.md index c9e2e9d0..4cf149e5 100644 --- a/docs/src/user-guide/format-string-overview.md +++ b/docs/src/user-guide/format-string-overview.md @@ -1,35 +1,37 @@ # Overview -The log viewer can accept a format string to transform JSON logs into human-readable text. -You can select which fields to display and how they should be formatted. The format string -input can be found in the settings dialog. +The log viewer can format structured (e.g. JSON) logs as plain text using a format string. The +format string allows you to select which fields to include and how they should be formatted. You can +configure the format string through the settings ({fas}`gear`) dialog. For example, for a JSON log with many fields: ```json { - "ts": 1732733160216, - "level": "ERROR", - "message": "Failed to process payment transaction", - "trace_id": "abc123def456", - "span_id": "span_789xyz", - "service": "payment-service", - "environment": "production", + "ts": 1732733160216, + "level": "ERROR", + "message": "Failed to process payment", + "trace_id": "abc123def456", + "span_id": "span_789xyz", + "service": "payment-service", + "environment": "production" } ``` You might want to show only: -- timestamp -- log level -- message +* `timestamp` +* `level` +* `message` You can achieve this with the following format string `{ts:timestamp} {level} {message}`. -`{ts:timestamp}` formats the timestamp field (Unix epoch) into a ISO 8601 date format. -`{level}` and `{message}` display the field as is. +`{ts:timestamp}` formats the timestamp field (Unix epoch) as an ISO 8601 date format while `{level}` +and `{message}` display the specified fields as is. -The log is displayed as: +The formatted log would appear as: ``` -2024-11-27T18:46:00Z ERROR Failed to process payment transaction. +2024-11-27T18:46:00Z ERROR Failed to process payment. ``` -For detailed information about the format string syntax, see [Format String Syntax](format-string-syntax). +For reference docs, see: +* [Format string syntax](format-string-syntax) +* [Formatters](format-string-formatters) From 941b558f3155ba6e69af9bdedc4dc6c152929695 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 27 Nov 2024 20:26:23 -0500 Subject: [PATCH 05/26] Refactor user-guide/format-string-syntax.md --- docs/src/user-guide/format-string-syntax.md | 123 ++++++++++++-------- 1 file changed, 77 insertions(+), 46 deletions(-) diff --git a/docs/src/user-guide/format-string-syntax.md b/docs/src/user-guide/format-string-syntax.md index d5fb269b..0e6c21c2 100644 --- a/docs/src/user-guide/format-string-syntax.md +++ b/docs/src/user-guide/format-string-syntax.md @@ -1,64 +1,95 @@ -# Format String Syntax - -- The format string is composed of arbitrary (“static”) text and field placeholders enclosed in - braces (`{` and `}`). - - Each brace or backslash in the static text must be escaped by a backslash. -- Each field placeholder has the following form, consisting of three components (contained in - braces): - - ``` - {[:[:]]} - ``` - - - `field-name` (required) defines the key of the field whose value should replace the - placeholder. - - Nested fields can be specified using periods (`.`) to denote hierarchy. E.g., the field - `{"a:" {"b": 0}}` may be denoted by `a.b`. - - Field names can contain any character except that each period, dollar sign, brace (left - or right), colon, or backslash must be escaped with a backslash. - - `formatter-name` (optional, unless `formatter-options` is specified) is the name of the - formatter to apply to the value before inserting it into the string. - - Formatter names can contain any character except a space (’ ‘) while each brace (left or - right), colon, or backslash must be escaped with a backslash. - - `formatter-options` (optional) defines any options for the formatter denoted by - `formatter-name`. - - Formatter options can contain any character except each brace (left or right), colon, or - backslash must be escaped with a backslash. -- Finally, every format string contains an implicit trailing newline so that each formatted log - event ends with a newline. - -For example, consider the following log event: +# Format string syntax +Each format string is composed of: +* [Static text](#static-text) +* [Field placeholders](#field-placeholders) +* [An implicit trailing newline](#implicit-trailing-newline) + +## Static text +Static text may contain any character except the following characters must be escaped with a +backslash: +* `{` +* `}` +* `\` + +## Field placeholders +Each field placeholder is enclosed in braces (`{` and `}`) and has the following form, consisting of +three components: +``` +{[:[:]]} +``` + +### field-nane (required) +Defines the key of the field whose value should replace the placeholder. + +* Nested fields can be specified using periods (`.`) to denote hierarchy. + * E.g., the field `{"a:" {"b": 0}}` may be denoted by `a.b`. +* Field names can contain any character except the following characters must be escaped with a + backslash: + * `.` + * `$` + * `{` + * `}` + * `:` + * `\` + +### formatter-name (optional) +The name of the formatter to apply to the value before inserting it into the string. + +* Formatter names can contain any character except a space (` `) and the following characters must + be escaped with a backslash (`\`): + * `{` + * `}` + * `:` + * `\` + +### `formatter-options` (optional) +Defines any options for the formatter denoted by `formatter-name`. + +* Formatter options can contain any character except the following characters must be escaped with a + backslash: + * `{` + * `}` + * `:` + * `\` + +:::{note} +`formatter-options` can only be specified if `formatter-name` was specified. +::: + +## Implicit trailing newline + +Every format string contains an implicit trailing newline so that each formatted log event ends with +a newline. + +## Examples +Consider the following log event: ``` { - "@timestamp": 1427153388942, - "level": "INFO", - "thread": 0, - "latency_secs": 56.4, - "an.odd.key{name}": "org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from - hadoop-metrics2.properties" + "@timestamp": 1427153388942, + "level": "INFO", + "thread": 0, + "latency_secs": 56.4, + "an.odd.key{name}": "org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties" } ``` We can format this using the following YScope format string: ``` -{@timestamp:timestamp:YYYY-MM-DD HH\:MM\:ss.SSS} {level} \{{thread}\} latency={latency_secs:round} -{an\.odd\.key\{name\}} +{@timestamp:timestamp:YYYY-MM-DD HH\:MM\:ss.SSS} {level} \{{thread}\} latency={latency_secs:round} {an\.odd\.key\{name\}} ``` -- In the first placeholder, we have the field name `ts`, a formatter called `timestamp`, and the +* In the first placeholder, we have the field name `ts`, a formatter called `timestamp`, and the formatter’s options which are a date format string. -- The second and third placeholders simply stringify the values of the given fields. -- The fourth placeholder uses the `round` formatter to round the field’s value; this placeholder +* The second and third placeholders simply stringify the values of the given fields. +* The fourth placeholder uses the `round` formatter to round the field’s value; this placeholder doesn’t specify any formatter options, so the defaults will be used. -- The fifth placeholder is for a field whose name contains characters that require escaping. +* The fifth placeholder is for a field whose name contains characters that require escaping. The formatted string will be: - ``` -2015-03-23 19:29:48.942 INFO {0} latency=56 org.apache.hadoop.metrics2.impl.MetricsConfig: loaded -properties from hadoop-metrics2.properties +2015-03-23 19:29:48.942 INFO {0} latency=56 org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties ``` -For a list of currently supported formatters, see [Formatters](format-string-formatters). \ No newline at end of file +For a list of currently supported formatters, see [Formatters](format-string-formatters). From 60aade68a26caf0109d681f4d099e77b6a3772ef Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 27 Nov 2024 20:29:02 -0500 Subject: [PATCH 06/26] Refactor user-guide/format-string-formatters.md --- .../user-guide/format-string-formatters.md | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/docs/src/user-guide/format-string-formatters.md b/docs/src/user-guide/format-string-formatters.md index 2cb0e433..18e8f3c4 100644 --- a/docs/src/user-guide/format-string-formatters.md +++ b/docs/src/user-guide/format-string-formatters.md @@ -1,33 +1,38 @@ # Formatters -Formatters allow you to transform how field values are displayed. See below for a list of -formatters. +Formatters allow you to transform how field values are displayed. Below we describe all available +formatters and their options. -## Timestamp Formatter +## Timestamp formatter -Converts Unix timestamps to human-readable date-time strings. +Converts millisecond Unix timestamps to human-readable date-time strings. -**Usage:** -`{field:timestamp[:options]}` +### Usage +``` +{field:timestamp[:options]} +``` -**Options:** -- Accepts a format string specifically for the date. -- Uses [Day.js format tokens](https://day.js.org/docs/en/display/format). -- Date string must escape colons with a backslash, e.g., `HH\:mm\:ss`. -- If no format is specified, the default format is ISO 8601. +### Options +A [Day.js format string](https://day.js.org/docs/en/display/format) for the date and time. -**Examples:** -- `{ts:timestamp}` → `2024-11-27T10:30:00Z` -- `{ts:timestamp:YYYY-MM-DD}` → `2024-11-27` +**Default:** `YYYY-MM-DDTHH:mm:ssZ` (ISO 8601) ---- +### Examples +Assuming the field `ts` is `1732703400000`: -## Round Formatter +* `{ts:timestamp}` → `2024-11-27T10:30:00Z` +* `{ts:timestamp:YYYY-MM-DD}` → `2024-11-27` + +## Round formatter Rounds a numeric value to the nearest integer. -**Usage:** -`{field:round}` +### Usage +``` +{field:round} +``` + +### Examples +Assuming the field `value` is `5.7`: -**Example:** -- `{value:round}` → `5.7` becomes `6` +* `{value:round}` → `6` From 8d7d10a90fa363c3d96b4f5235c0dcf4ea3ee6c5 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 27 Nov 2024 20:29:25 -0500 Subject: [PATCH 07/26] Refactor user-guide/log-level-filter.md --- docs/src/user-guide/log-level-filter.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/src/user-guide/log-level-filter.md b/docs/src/user-guide/log-level-filter.md index 5eabab02..ac85f888 100644 --- a/docs/src/user-guide/log-level-filter.md +++ b/docs/src/user-guide/log-level-filter.md @@ -1,15 +1,15 @@ # Overview -The log viewer offers two ways to filter log levels. +The log viewer offers two ways to filter logs by their level. -## Severity Filtering -Filter logs at or above a selected level. Click the level name (e.g., INFO) to show all logs at - or above that severity. For example, selecting INFO shows INFO, WARN, ERROR, and FATAL logs. +## Severity-based filtering +You can filter for log events at or above a selected level by clicking the level's name. For +example, selecting INFO shows INFO, WARN, ERROR, and FATAL logs. ![Severity filtering](../attachments/severity-filter.png) -## Individual Filtering -Select specific log levels to show or hide. Use the checkboxes next to each level name to toggle - visibility. +## Individual level filtering +You can select specific log levels to show or hide by checking or unchecking the checkbox next to +each level's name. ![Individual level filtering](../attachments/individual-filter.png) From 59f3e22aef2cc78f58328dbc4ae00a729101e421 Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Thu, 28 Nov 2024 02:48:38 +0000 Subject: [PATCH 08/26] kirk review --- docs/src/user-guide/.gitattributes | 1 + ...rmatters.md => format-struct-logs-formatters.md} | 0 ...g-overview.md => format-struct-logs-overview.md} | 0 ...tring-syntax.md => format-struct-logs-syntax.md} | 0 docs/src/user-guide/index.md | 10 +++++----- .../individual-filter.png | Bin .../{log-level-filter.md => log-level-filtering.md} | 0 .../{quick-start-overview.md => quick-start.md} | 0 .../{attachments => user-guide}/severity-filter.png | Bin 9 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 docs/src/user-guide/.gitattributes rename docs/src/user-guide/{format-string-formatters.md => format-struct-logs-formatters.md} (100%) rename docs/src/user-guide/{format-string-overview.md => format-struct-logs-overview.md} (100%) rename docs/src/user-guide/{format-string-syntax.md => format-struct-logs-syntax.md} (100%) rename docs/src/{attachments => user-guide}/individual-filter.png (100%) rename docs/src/user-guide/{log-level-filter.md => log-level-filtering.md} (100%) rename docs/src/user-guide/{quick-start-overview.md => quick-start.md} (100%) rename docs/src/{attachments => user-guide}/severity-filter.png (100%) diff --git a/docs/src/user-guide/.gitattributes b/docs/src/user-guide/.gitattributes new file mode 100644 index 00000000..c091529f --- /dev/null +++ b/docs/src/user-guide/.gitattributes @@ -0,0 +1 @@ +*.png filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/docs/src/user-guide/format-string-formatters.md b/docs/src/user-guide/format-struct-logs-formatters.md similarity index 100% rename from docs/src/user-guide/format-string-formatters.md rename to docs/src/user-guide/format-struct-logs-formatters.md diff --git a/docs/src/user-guide/format-string-overview.md b/docs/src/user-guide/format-struct-logs-overview.md similarity index 100% rename from docs/src/user-guide/format-string-overview.md rename to docs/src/user-guide/format-struct-logs-overview.md diff --git a/docs/src/user-guide/format-string-syntax.md b/docs/src/user-guide/format-struct-logs-syntax.md similarity index 100% rename from docs/src/user-guide/format-string-syntax.md rename to docs/src/user-guide/format-struct-logs-syntax.md diff --git a/docs/src/user-guide/index.md b/docs/src/user-guide/index.md index 3aadbe8f..957771e8 100644 --- a/docs/src/user-guide/index.md +++ b/docs/src/user-guide/index.md @@ -32,7 +32,7 @@ A guide to filtering log events by their levels. :hidden: :caption: Quick start -quick-start-overview +quick-start ::: :::{toctree} @@ -40,14 +40,14 @@ quick-start-overview :caption: Formatting structured logs :glob: -format-string-overview -format-string-syntax -format-string-formatters +format-struct-logs-overview +format-struct-logs-syntax +format-struct-logs-formatters ::: :::{toctree} :hidden: :caption: Log level filtering -log-level-filter +log-level-filtering ::: diff --git a/docs/src/attachments/individual-filter.png b/docs/src/user-guide/individual-filter.png similarity index 100% rename from docs/src/attachments/individual-filter.png rename to docs/src/user-guide/individual-filter.png diff --git a/docs/src/user-guide/log-level-filter.md b/docs/src/user-guide/log-level-filtering.md similarity index 100% rename from docs/src/user-guide/log-level-filter.md rename to docs/src/user-guide/log-level-filtering.md diff --git a/docs/src/user-guide/quick-start-overview.md b/docs/src/user-guide/quick-start.md similarity index 100% rename from docs/src/user-guide/quick-start-overview.md rename to docs/src/user-guide/quick-start.md diff --git a/docs/src/attachments/severity-filter.png b/docs/src/user-guide/severity-filter.png similarity index 100% rename from docs/src/attachments/severity-filter.png rename to docs/src/user-guide/severity-filter.png From 42e1f43bd2c311f36cf37e84cbaaa8e03afcfb66 Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Thu, 28 Nov 2024 03:08:41 +0000 Subject: [PATCH 09/26] fix broken link --- docs/src/user-guide/log-level-filtering.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/user-guide/log-level-filtering.md b/docs/src/user-guide/log-level-filtering.md index ac85f888..77b123e3 100644 --- a/docs/src/user-guide/log-level-filtering.md +++ b/docs/src/user-guide/log-level-filtering.md @@ -6,10 +6,10 @@ The log viewer offers two ways to filter logs by their level. You can filter for log events at or above a selected level by clicking the level's name. For example, selecting INFO shows INFO, WARN, ERROR, and FATAL logs. -![Severity filtering](../attachments/severity-filter.png) +![Severity filtering](./severity-filter.png) ## Individual level filtering You can select specific log levels to show or hide by checking or unchecking the checkbox next to each level's name. -![Individual level filtering](../attachments/individual-filter.png) +![Individual level filtering](./individual-filter.png) From fd19fa29a8cb4f3d2ca1c9aec3da9eab78cba263 Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Thu, 28 Nov 2024 03:10:32 +0000 Subject: [PATCH 10/26] fix more broken things.. --- docs/src/user-guide/format-struct-logs-overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/user-guide/format-struct-logs-overview.md b/docs/src/user-guide/format-struct-logs-overview.md index 4cf149e5..03aa1bfe 100644 --- a/docs/src/user-guide/format-struct-logs-overview.md +++ b/docs/src/user-guide/format-struct-logs-overview.md @@ -33,5 +33,5 @@ The formatted log would appear as: ``` For reference docs, see: -* [Format string syntax](format-string-syntax) -* [Formatters](format-string-formatters) +* [Format string syntax](format-struct-logs-syntax) +* [Formatters](format-stuct-logs-formatters) From c2e92cf4f094aee1ad756423974dced408ca4868 Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Thu, 28 Nov 2024 03:12:31 +0000 Subject: [PATCH 11/26] more --- docs/src/user-guide/format-struct-logs-overview.md | 2 +- docs/src/user-guide/format-struct-logs-syntax.md | 2 +- docs/src/user-guide/index.md | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/src/user-guide/format-struct-logs-overview.md b/docs/src/user-guide/format-struct-logs-overview.md index 03aa1bfe..9525e9a0 100644 --- a/docs/src/user-guide/format-struct-logs-overview.md +++ b/docs/src/user-guide/format-struct-logs-overview.md @@ -34,4 +34,4 @@ The formatted log would appear as: For reference docs, see: * [Format string syntax](format-struct-logs-syntax) -* [Formatters](format-stuct-logs-formatters) +* [Formatters](format-struct-logs-formatters) diff --git a/docs/src/user-guide/format-struct-logs-syntax.md b/docs/src/user-guide/format-struct-logs-syntax.md index 0e6c21c2..a5d875a2 100644 --- a/docs/src/user-guide/format-struct-logs-syntax.md +++ b/docs/src/user-guide/format-struct-logs-syntax.md @@ -92,4 +92,4 @@ The formatted string will be: 2015-03-23 19:29:48.942 INFO {0} latency=56 org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties ``` -For a list of currently supported formatters, see [Formatters](format-string-formatters). +For a list of currently supported formatters, see [Formatters](format-struct-logs-formatters). diff --git a/docs/src/user-guide/index.md b/docs/src/user-guide/index.md index 957771e8..7e0b909a 100644 --- a/docs/src/user-guide/index.md +++ b/docs/src/user-guide/index.md @@ -7,21 +7,21 @@ hidden, click the {fas}`bars` icon) to navigate to specific docs. :gutter: 2 :::{grid-item-card} -:link: quick-start-overview +:link: quick-start Quick start ^^^ A guide to viewing log files in the log viewer. ::: :::{grid-item-card} -:link: format-string-overview +:link: format-struct-logs-overview Formatting structured logs ^^^ A guide to formatting structured (e.g. JSON) logs as plain text. ::: :::{grid-item-card} -:link: log-level-filter +:link: log-level-filtering Log level filtering ^^^ A guide to filtering log events by their levels. From fbd51cd2294f6a22a0b5175b942723caabad0c44 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 27 Nov 2024 23:53:43 -0500 Subject: [PATCH 12/26] Fix typo. --- docs/src/user-guide/format-struct-logs-syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/user-guide/format-struct-logs-syntax.md b/docs/src/user-guide/format-struct-logs-syntax.md index a5d875a2..4ca2b9f8 100644 --- a/docs/src/user-guide/format-struct-logs-syntax.md +++ b/docs/src/user-guide/format-struct-logs-syntax.md @@ -19,7 +19,7 @@ three components: {[:[:]]} ``` -### field-nane (required) +### field-name (required) Defines the key of the field whose value should replace the placeholder. * Nested fields can be specified using periods (`.`) to denote hierarchy. From e18af3cbce887517bd413e95b1254288cefb6779 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 27 Nov 2024 23:53:53 -0500 Subject: [PATCH 13/26] Add images to git LFS. --- docs/src/user-guide/individual-filter.png | Bin 10544 -> 130 bytes docs/src/user-guide/severity-filter.png | Bin 14483 -> 130 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/src/user-guide/individual-filter.png b/docs/src/user-guide/individual-filter.png index 60759ad304b0ce5846c5dda42f6f7a55900e4ec9..229b0333b3c3e5d329160cf05f7e9d5d8bffa29a 100644 GIT binary patch literal 130 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 MP9^nE+5#l6ZVdh?C;$Ke literal 14483 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%0DK_t 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 From 68ab84e86deaf6bde92caadd61df16773a0781f3 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 27 Nov 2024 23:59:49 -0500 Subject: [PATCH 14/26] Fix typo. --- docs/src/user-guide/format-struct-logs-syntax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/user-guide/format-struct-logs-syntax.md b/docs/src/user-guide/format-struct-logs-syntax.md index 4ca2b9f8..69d31d52 100644 --- a/docs/src/user-guide/format-struct-logs-syntax.md +++ b/docs/src/user-guide/format-struct-logs-syntax.md @@ -80,8 +80,8 @@ We can format this using the following YScope format string: {@timestamp:timestamp:YYYY-MM-DD HH\:MM\:ss.SSS} {level} \{{thread}\} latency={latency_secs:round} {an\.odd\.key\{name\}} ``` -* In the first placeholder, we have the field name `ts`, a formatter called `timestamp`, and the - formatter’s options which are a date format string. +* In the first placeholder, we have the field name `@timestamp`, a formatter called `timestamp`, and + the formatter’s options which are a date format string. * The second and third placeholders simply stringify the values of the given fields. * The fourth placeholder uses the `round` formatter to round the field’s value; this placeholder doesn’t specify any formatter options, so the defaults will be used. From 6ca30931e98c88a754ab6eb2405206ae0b068f11 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 28 Nov 2024 00:00:46 -0500 Subject: [PATCH 15/26] Add some commas for clarity. --- docs/src/user-guide/format-struct-logs-syntax.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/src/user-guide/format-struct-logs-syntax.md b/docs/src/user-guide/format-struct-logs-syntax.md index 69d31d52..35545ed0 100644 --- a/docs/src/user-guide/format-struct-logs-syntax.md +++ b/docs/src/user-guide/format-struct-logs-syntax.md @@ -6,7 +6,7 @@ Each format string is composed of: * [An implicit trailing newline](#implicit-trailing-newline) ## Static text -Static text may contain any character except the following characters must be escaped with a +Static text may contain any character, except the following characters must be escaped with a backslash: * `{` * `}` @@ -24,7 +24,7 @@ Defines the key of the field whose value should replace the placeholder. * Nested fields can be specified using periods (`.`) to denote hierarchy. * E.g., the field `{"a:" {"b": 0}}` may be denoted by `a.b`. -* Field names can contain any character except the following characters must be escaped with a +* Field names can contain any character, except the following characters must be escaped with a backslash: * `.` * `$` @@ -36,7 +36,7 @@ Defines the key of the field whose value should replace the placeholder. ### formatter-name (optional) The name of the formatter to apply to the value before inserting it into the string. -* Formatter names can contain any character except a space (` `) and the following characters must +* Formatter names can contain any character except a space (` `), and the following characters must be escaped with a backslash (`\`): * `{` * `}` @@ -46,8 +46,8 @@ The name of the formatter to apply to the value before inserting it into the str ### `formatter-options` (optional) Defines any options for the formatter denoted by `formatter-name`. -* Formatter options can contain any character except the following characters must be escaped with a - backslash: +* Formatter options can contain any character, except the following characters must be escaped with + a backslash: * `{` * `}` * `:` From 163d2c6a49d3a63feeaeb24ad4ac89c6e0dbd261 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 28 Nov 2024 00:18:45 -0500 Subject: [PATCH 16/26] Revert "Add images to git LFS." This reverts commit e18af3cbce887517bd413e95b1254288cefb6779. --- docs/src/user-guide/individual-filter.png | Bin 130 -> 10544 bytes docs/src/user-guide/severity-filter.png | Bin 130 -> 14483 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/src/user-guide/individual-filter.png b/docs/src/user-guide/individual-filter.png index 229b0333b3c3e5d329160cf05f7e9d5d8bffa29a..60759ad304b0ce5846c5dda42f6f7a55900e4ec9 100644 GIT binary patch literal 10544 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%0DK_t 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 literal 130 zcmWN{K@Ni;5J1sAr{DsW0wbWeDdUWgw8eDLMNcoQpS=8wep1_4m);LqjoE8|yjiBv za^?x!$H+lwE~{GIw3L^d!@4-g9wPy=TL3K+GRG9dlQJa;nJH584mJ-&7G_L?*}>2_ MP9^nE+5#l6ZVdh?C;$Ke From 2c9d6218330cb4ed3d03839856010f649738cff2 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 28 Nov 2024 00:19:39 -0500 Subject: [PATCH 17/26] Re-add images as normal files. --- docs/src/user-guide/individual-filter.png | Bin 10544 -> 130 bytes docs/src/user-guide/severity-filter.png | Bin 14483 -> 130 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/src/user-guide/individual-filter.png b/docs/src/user-guide/individual-filter.png index 60759ad304b0ce5846c5dda42f6f7a55900e4ec9..229b0333b3c3e5d329160cf05f7e9d5d8bffa29a 100644 GIT binary patch literal 130 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 MP9^nE+5#l6ZVdh?C;$Ke literal 14483 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%0DK_t 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 From 2e774dcd8aab9687eac378a8d2c6de980e7bfe27 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 28 Nov 2024 00:25:11 -0500 Subject: [PATCH 18/26] Retry adding images as normal files. --- docs/src/user-guide/individual-filter.png | 3 --- docs/src/user-guide/severity-filter.png | 3 --- 2 files changed, 6 deletions(-) delete mode 100644 docs/src/user-guide/individual-filter.png delete mode 100644 docs/src/user-guide/severity-filter.png diff --git a/docs/src/user-guide/individual-filter.png b/docs/src/user-guide/individual-filter.png deleted file mode 100644 index 229b0333..00000000 --- a/docs/src/user-guide/individual-filter.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bbfa4ba507a87dbbfa0926430e23dcdb0c0410f042a512d61f521a6343de0cae -size 10544 diff --git a/docs/src/user-guide/severity-filter.png b/docs/src/user-guide/severity-filter.png deleted file mode 100644 index 9cf5a738..00000000 --- a/docs/src/user-guide/severity-filter.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:924b3c7e4cf294c1fecff78760ebe846bfe7e8324d34ee145c8e84f247e87ff7 -size 14483 From a0742a6169049542630620a222fde190e5d7d9d9 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 28 Nov 2024 00:57:09 -0500 Subject: [PATCH 19/26] Retry adding images as normal files. --- docs/src/user-guide/individual-filter.png | 3 +++ docs/src/user-guide/severity-filter.png | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 docs/src/user-guide/individual-filter.png create mode 100644 docs/src/user-guide/severity-filter.png diff --git a/docs/src/user-guide/individual-filter.png b/docs/src/user-guide/individual-filter.png new file mode 100644 index 00000000..229b0333 --- /dev/null +++ b/docs/src/user-guide/individual-filter.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbfa4ba507a87dbbfa0926430e23dcdb0c0410f042a512d61f521a6343de0cae +size 10544 diff --git a/docs/src/user-guide/severity-filter.png b/docs/src/user-guide/severity-filter.png new file mode 100644 index 00000000..9cf5a738 --- /dev/null +++ b/docs/src/user-guide/severity-filter.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:924b3c7e4cf294c1fecff78760ebe846bfe7e8324d34ee145c8e84f247e87ff7 +size 14483 From 893820eb78a488fc67f1ac827f2b684a0be4dfca Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 28 Nov 2024 01:14:53 -0500 Subject: [PATCH 20/26] Remove images. --- docs/src/user-guide/.gitattributes | 1 - docs/src/user-guide/individual-filter.png | Bin 130 -> 10544 bytes docs/src/user-guide/severity-filter.png | Bin 130 -> 14483 bytes 3 files changed, 1 deletion(-) diff --git a/docs/src/user-guide/.gitattributes b/docs/src/user-guide/.gitattributes index c091529f..e69de29b 100644 --- a/docs/src/user-guide/.gitattributes +++ b/docs/src/user-guide/.gitattributes @@ -1 +0,0 @@ -*.png filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/docs/src/user-guide/individual-filter.png b/docs/src/user-guide/individual-filter.png index 229b0333b3c3e5d329160cf05f7e9d5d8bffa29a..60759ad304b0ce5846c5dda42f6f7a55900e4ec9 100644 GIT binary patch literal 10544 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%0DK_t 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 literal 130 zcmWN{K@Ni;5J1sAr{DsW0wbWeDdUWgw8eDLMNcoQpS=8wep1_4m);LqjoE8|yjiBv za^?x!$H+lwE~{GIw3L^d!@4-g9wPy=TL3K+GRG9dlQJa;nJH584mJ-&7G_L?*}>2_ MP9^nE+5#l6ZVdh?C;$Ke From 04442ef36fac81e6cb42197f0bb887871258b815 Mon Sep 17 00:00:00 2001 From: davemarco <83603688+davemarco@users.noreply.github.com> Date: Thu, 28 Nov 2024 14:28:11 -0500 Subject: [PATCH 21/26] Update docs/src/user-guide/log-level-filtering.md Co-authored-by: kirkrodrigues <2454684+kirkrodrigues@users.noreply.github.com> --- docs/src/user-guide/log-level-filtering.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/user-guide/log-level-filtering.md b/docs/src/user-guide/log-level-filtering.md index 77b123e3..b838de7a 100644 --- a/docs/src/user-guide/log-level-filtering.md +++ b/docs/src/user-guide/log-level-filtering.md @@ -6,7 +6,7 @@ The log viewer offers two ways to filter logs by their level. You can filter for log events at or above a selected level by clicking the level's name. For example, selecting INFO shows INFO, WARN, ERROR, and FATAL logs. -![Severity filtering](./severity-filter.png) +![Severity filtering](severity-filter.png) ## Individual level filtering You can select specific log levels to show or hide by checking or unchecking the checkbox next to From 2efe385ed41407a8fa562b7a87c2949aa69babde Mon Sep 17 00:00:00 2001 From: davemarco <83603688+davemarco@users.noreply.github.com> Date: Thu, 28 Nov 2024 14:28:20 -0500 Subject: [PATCH 22/26] Update docs/src/user-guide/log-level-filtering.md Co-authored-by: kirkrodrigues <2454684+kirkrodrigues@users.noreply.github.com> --- docs/src/user-guide/log-level-filtering.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/user-guide/log-level-filtering.md b/docs/src/user-guide/log-level-filtering.md index b838de7a..a79e6146 100644 --- a/docs/src/user-guide/log-level-filtering.md +++ b/docs/src/user-guide/log-level-filtering.md @@ -12,4 +12,4 @@ example, selecting INFO shows INFO, WARN, ERROR, and FATAL logs. You can select specific log levels to show or hide by checking or unchecking the checkbox next to each level's name. -![Individual level filtering](./individual-filter.png) +![Individual level filtering](individual-filter.png) From e60e3769fd73b25b8f72bbb6ed26a10f2180da43 Mon Sep 17 00:00:00 2001 From: Dave Marco Date: Thu, 28 Nov 2024 19:39:13 +0000 Subject: [PATCH 23/26] add lfs --- docs/src/user-guide/.gitattributes | 1 + docs/src/user-guide/individual-filter.png | Bin 10544 -> 130 bytes docs/src/user-guide/severity-filter.png | Bin 14483 -> 130 bytes 3 files changed, 1 insertion(+) diff --git a/docs/src/user-guide/.gitattributes b/docs/src/user-guide/.gitattributes index e69de29b..24a8e879 100644 --- a/docs/src/user-guide/.gitattributes +++ b/docs/src/user-guide/.gitattributes @@ -0,0 +1 @@ +*.png filter=lfs diff=lfs merge=lfs -text diff --git a/docs/src/user-guide/individual-filter.png b/docs/src/user-guide/individual-filter.png index 60759ad304b0ce5846c5dda42f6f7a55900e4ec9..229b0333b3c3e5d329160cf05f7e9d5d8bffa29a 100644 GIT binary patch literal 130 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 MP9^nE+5#l6ZVdh?C;$Ke literal 14483 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%0DK_t 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 From 32605d24fbd07be329faaadf3318fd5bdc8aac73 Mon Sep 17 00:00:00 2001 From: davemarco <83603688+davemarco@users.noreply.github.com> Date: Thu, 28 Nov 2024 15:44:47 -0500 Subject: [PATCH 24/26] Update docs/src/user-guide/format-struct-logs-syntax.md --- docs/src/user-guide/format-struct-logs-syntax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/user-guide/format-struct-logs-syntax.md b/docs/src/user-guide/format-struct-logs-syntax.md index 35545ed0..6ce3bc60 100644 --- a/docs/src/user-guide/format-struct-logs-syntax.md +++ b/docs/src/user-guide/format-struct-logs-syntax.md @@ -43,7 +43,7 @@ The name of the formatter to apply to the value before inserting it into the str * `:` * `\` -### `formatter-options` (optional) +### formatter-options (optional) Defines any options for the formatter denoted by `formatter-name`. * Formatter options can contain any character, except the following characters must be escaped with From 7d56440b6407b9bb9bfcaca0b8d289fa11a8bded Mon Sep 17 00:00:00 2001 From: davemarco <83603688+davemarco@users.noreply.github.com> Date: Thu, 28 Nov 2024 15:44:53 -0500 Subject: [PATCH 25/26] Update docs/src/user-guide/format-struct-logs-overview.md --- docs/src/user-guide/format-struct-logs-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/user-guide/format-struct-logs-overview.md b/docs/src/user-guide/format-struct-logs-overview.md index 9525e9a0..e4039c01 100644 --- a/docs/src/user-guide/format-struct-logs-overview.md +++ b/docs/src/user-guide/format-struct-logs-overview.md @@ -10,7 +10,7 @@ For example, for a JSON log with many fields: { "ts": 1732733160216, "level": "ERROR", - "message": "Failed to process payment", + "message": "Failed to process payment.", "trace_id": "abc123def456", "span_id": "span_789xyz", "service": "payment-service", From 6c0359bca5b6342a452e697d2c60b14da5c52f40 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 28 Nov 2024 16:35:48 -0500 Subject: [PATCH 26/26] Add nested field to structured log formatting example; Replace curly quotes with straight quotes. --- docs/src/user-guide/format-struct-logs-syntax.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/src/user-guide/format-struct-logs-syntax.md b/docs/src/user-guide/format-struct-logs-syntax.md index 6ce3bc60..e0af9c94 100644 --- a/docs/src/user-guide/format-struct-logs-syntax.md +++ b/docs/src/user-guide/format-struct-logs-syntax.md @@ -69,7 +69,10 @@ Consider the following log event: "@timestamp": 1427153388942, "level": "INFO", "thread": 0, - "latency_secs": 56.4, + "latency": { + "msecs": 56400, + "secs": 56.4, + }, "an.odd.key{name}": "org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties" } ``` @@ -77,14 +80,14 @@ Consider the following log event: We can format this using the following YScope format string: ``` -{@timestamp:timestamp:YYYY-MM-DD HH\:MM\:ss.SSS} {level} \{{thread}\} latency={latency_secs:round} {an\.odd\.key\{name\}} +{@timestamp:timestamp:YYYY-MM-DD HH\:MM\:ss.SSS} {level} \{{thread}\} latency={latency.secs:round} {an\.odd\.key\{name\}} ``` * In the first placeholder, we have the field name `@timestamp`, a formatter called `timestamp`, and - the formatter’s options which are a date format string. + the formatter's options which are a date format string. * The second and third placeholders simply stringify the values of the given fields. -* The fourth placeholder uses the `round` formatter to round the field’s value; this placeholder - doesn’t specify any formatter options, so the defaults will be used. +* The fourth placeholder uses the `round` formatter to round a nested field's value; this + placeholder doesn't specify any formatter options, so the defaults will be used. * The fifth placeholder is for a field whose name contains characters that require escaping. The formatted string will be: