Files
boc/aamos-ledger-rust/target/debug/deps/liblog-1dc20bd6fe73f0dd.rlib
T

642 lines
231 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 3340 `
,ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(ò(_ZN3log10set_logger17h1b6988809942f0b4E_ZN3log11LevelFilter10from_usize17hd2a375ba533cb096E_ZN3log11LevelFilter18decrement_severity17ha51e5b3b27e19250E_ZN4core6option15Option$LT$T$GT$9unwrap_or17h10f8e96de839c553E_ZN3log11LevelFilter18increment_severity17h54cf30d414ea092bE_ZN3log11LevelFilter4iter17h11c87d570c8f1626E_ZN4core4iter6traits8iterator8Iterator3map17h5678d8a2bd6dbe09E_ZN3log11LevelFilter6as_str17hcf920bf25a7b2d4bE_ZN3log13__private_api3loc17h0f5b98eb831010c6E_ZN3log15set_logger_racy17hdcc56e39fc824514E_ZN3log5Level10from_usize17h5eda5ad9f7a99598E_ZN3log5Level18decrement_severity17hd9dbe91350762492E_ZN4core6option15Option$LT$T$GT$9unwrap_or17hf52326cd08dd71c3E_ZN3log5Level18increment_severity17h9af33acfb62ab5ceE_ZN3log5Level4iter17h020cca41d817fd08E_ZN4core4iter6traits8iterator8Iterator3map17h8aee0625813a9a37E_ZN3log5Level6as_str17hba6f0ee6e27000cdE_ZN3log6logger17hfcdb2a1f734e6cdcE_ZN43_$LT$log..NopLogger$u20$as$u20$log..Log$GT$3log17h576af80e8cfba5bcE_ZN43_$LT$log..NopLogger$u20$as$u20$log..Log$GT$5flush17hded5908f196ef5e8E_ZN43_$LT$log..NopLogger$u20$as$u20$log..Log$GT$7enabled17h9de74fe09315b049E_ZN49_$LT$log..Level$u20$as$u20$core..fmt..Display$GT$3fmt17hd6409833023b10acE_ZN4core3cmp5impls69_$LT$impl$u20$core..cmp..PartialEq$LT$$RF$B$GT$$u20$for$u20$$RF$A$GT$2eq17hc3d142df8d6081ddE_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$4next17ha8ff967e4fe2f2d9E_ZN89_$LT$core..ops..range..Range$LT$T$GT$$u20$as$u20$core..iter..range..RangeIteratorImpl$GT$9spec_next17h9c85f8a7bc32ab07E_ZN4core4sync6atomic11atomic_load17h838150c24d180921E_ZN4core4sync6atomic12atomic_store17hb87d03fd6748f974E_ZN4core4sync6atomic23atomic_compare_exchange17h8eedcabcc886232fE_ZN54_$LT$log..MaybeStaticStr$u20$as$u20$core..cmp..Ord$GT$3cmp17h383741a4e1c248b6E_ZN55_$LT$log..LevelFilter$u20$as$u20$core..fmt..Display$GT$3fmt17hb39ce4cded32008fE_ZN57_$LT$log..Level$u20$as$u20$core..str..traits..FromStr$GT$8from_str17hf35d1b5f6d0ea75dE_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17hf1ae60f4ecc56c6bE_ZN58_$LT$log..SetLoggerError$u20$as$u20$core..fmt..Display$GT$3fmt17h13e5438351de8a78E_ZN59_$LT$log..ParseLevelError$u20$as$u20$core..fmt..Display$GT$3fmt17h70b859f5608569fcE_ZN60_$LT$log..MaybeStaticStr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h5634fee27b9683deE_ZN61_$LT$log..MaybeStaticStr$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hc8d005984f9e1340E_ZN61_$LT$log..RecordBuilder$u20$as$u20$core..default..Default$GT$7default17h5c2dff6d0dd806edE_ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$3log17h9a4c8c891034d9dbE_ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$5flush17hce514ac147a7ef7bE_ZN61_$LT$log..__private_api..GlobalLogger$u20$as$u20$log..Log$GT$7enabled17hb6b95ff2517d0386E_ZN63_$LT$log..LevelFilter$u20$as$u20$core..str..traits..FromStr$GT$8from_str17hb049b9a42c65a79eE_ZN63_$LT$log..MetadataBuilder$u20$as$u20$core..default..Default$GT$7default17h735bbbfa20fa269cE_ZN3log20MAX_LOG_LEVEL_FILTER17h1336dd9829819c3eEDW.ref.rust_eh_personality// 56 `
log-1dc20bd6fe73f0dd.log.3cc5a8fa4f2c03cd-cgu.0.rcgu.o/
lib.rmeta/ 0 0 0 644 189480 `
ELF·¨â@@GNUÀrust
à#rustc 1.96.0 (ac68faa20 2026-05-25)ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁerrorÁ,º|»À|Ÿ|
__log_keyÁLy»kvÁtäx
__log_valueÁ\~»ºtó}
__log_value_svalÁ„°‰»kv_svalÁœ
__log_value_serdeÁŒÅŒ»kv_serdeÁ¤¡Œ
__log_value_errorÁŒø»kv_stdÁ”ÖserdeÁ,}»
serde_coreÁ´º·}»ºtž}a$Å~óµ Ì™~ܘ~®D‰óµ ÌÕ~ÜÔ~ AtomicUsizeÁ\Âóµ ÌžÜ KeyValuesÁLâí»ºt¹íset_boxed_loggerÁ„Èì»À|“ì
kv_supportÁT绺testsÁ,²£$§£íÀmacrosÁ
__logÁ
 log_enabledÁ

__log_enabledÁ
 __log_loggerÁ
¥
Æ
ç

Ç LOGGERÁSTATEÁ
UNINITIALIZEDÁ INITIALIZINGÁ INITIALIZEDÁMAX_LOG_LEVEL_FILTERÁLOG_LEVEL_NAMESÁ SET_LOGGER_ERRORÁLEVEL_PARSE_ERRORÁ!#ï
%%þ(×**maxÁ*to_level_filterÁ*as_strÁ*ù// *increment_severityÁ*decrement_severityÁ46ï
88þ;× ==²=to_levelÁ=Ò=ùBB =î=
G'aÁGgetÁ  K
MOï
Q§RT
TbuilderÁTÀTmetadataÁTlevelÁTêT¹ [ Tmodule_path_staticÁTÌ^ T file_staticÁTšb
bæ bÀb b bêb¹ b² bÌbÖ bšbbuildÁo>q
qð
q qêv
væ v vêvÀ |>LogÁ~enabledÁ~logÁ~flushÁ NopLoggerÁ
±
¿
É
ˆ¥ˆ±
ˆ¿
ˆÉ

set_max_levelÁset_max_level_racyÁ max_levelÁ
set_loggerÁ set_logger_innerÁset_logger_racyÁ××loggerÁNOPÁ
__private_apiÁ 
  KeyÁ©
ValueÁ«
sealedÁ­KVsÁ®
®into_kvsÁ±
±´
´·±
·¿
·É
log_implÁ»¿
½
½œ½±
ÁlocÁSTATIC_MAX_LEVELÁ
¿

Š
Õ
infoÁ

traceÁLevelÁËErrorÁÌ
Ì ËWarnÁÏ
ËInfoÁÑ
ËpÓ
ËTraceÁÕ
؃ÜÞÖ àï
!â"ä×#æ§çù LevelFilterÁéOffÁê
éì
é˜î
é©ð
épò
éÆô
$%÷ƒ&'(û)ýÖ*ÿï
+,ƒ×-§ùMaybeStaticStrÁˆ
ˆStaticÁŠ
ŠˆˆBorrowedÁ
ˆ.
/
0
ƒ1
×RecordÁš
š šÀš¹ šÌšš2¡
¡ƒ3¤
¤×
RecordBuilderÁ§
§recordÁ4ª
ª×MetadataÁ­
­ ­ê5±
±ƒ6´
´Ö7·
8¹
¹9¼
¼:¿
¿ï
;Â
§Äù<Æ
Æ×MetadataBuilderÁÉ
É =Ì
ÌÖ>Ï
?Ñ
Ñ@Ô
ÔA×
×ï
BÚ
Ú§ÜùCÞ
Þ×SetLoggerErrorÁá
áˆDä×ParseLevelErrorÁæ
æˆEé×FGìHîÖ GlobalLoggerÁð
ò×"
"
$
$
'
)
)
)
-
.
2
3
5
5
7
7
:
<
<
<
@
A
E
F
I
J
K
L
L
M
N
N
O
P
P
Q
R
R
W
X
Y
Z
[
]
^
`
a
e
f
g
h
i
j
k
l
m
n
o
t
u
y
z
{
|














ˆ
Š
Š
Š



Œ



˜
˜
˜
¸
¸
¸
¹
¹
¹
º
»
»
»
»
»
»
»
½
½
½
½
Á
Ù
Ý
Ý
ß
á
á
ã
ã
å
å
å
ç
ç
ø
ü
ü
þ













£
¦
¦
¦
¬
¬
¬
³

»
»
¾
¾
Á
Á
Ä
Ä
È
È
È
Î
Ó
Ó
Ö
Ö
Ù
Ù
Ü
Ü
à
à
à
å
å
å
ê
ê
ê
í
í
ï
ó
ó
ó
ÛËÌÍÎÏИÑÒ©ÓÔpÕÖÆ¨ ©©¡tvØ·$Š ·$Ðì·$µß·$·$·$íß·$·$º·$¿c·$še·$µß·$éêëÒìíîï˜ðñ©òópôõÆÑåòíß·$Ž&ïy·$Äc·$ÛŽ&ØŽ&Š Ž&ÐìŽ&µßŽ&Ž&Ž&íߎ&Ž&ºŽ&¿cŽ&šeŽ&µßŽ&·$íߎ&·$ïyŽ&ÄcŽ&Š ˆŠ§ŒˆŽÂˆøÆ·d¹ÚÝ
ÛË(ØË(¿cË(ˆŠ§ŒˆŽÂˆøÆ·d¹ÚÝ8µßÂ)Â)ºÂ)íßÂ)Â)šeÂ)Øššžœ Àž¹ ŸÌ šd…ó¹Â†ý
¿cÊ*¿c§§ƒ© $W|ÆÛv(
³§§ƒ© $W|ÆÛv(8Ø­­Á¯ °ê¢zì|" 
­,Ðì­,µß­,­,º­,íß­,­,še­,¿c­,ÉÉˆË X*¢åîÿ
ÐìÁ-µßÁ-Á-ºÁ-íßÁ-Á-šeÁ-¿cÁ-³ÉÉˆË X*¢åîÿ8~ƒÕ
 ŠD¶>ÄÕ~ 8¥¿cááâºãˆ ¥;éºóûMÄc·/¿cææçèèˆ 2¾ú¯È¸2Ðìù/µßù/ù/ù/Äcù/® 
 
ç0
®
¿cððñ´ þ¥ ‡¬ÊÑ»~1×ËöéˆØË÷鈡š±­ÚËùéˆÛËúé·­ÏÉëæÜË!Ëûé4éKˆ¹­ÑÉìæÞËýéJˆ´­ÌÉîæàË#Ëÿé6éOˆ¿­×ÉâËéMˆ¼­ÔÉäËƒéˆ¤šª§Æ­ÞÉäáéæòðæËéQˆÂ­ÚÉ%Ë8é(Ë;éáæo§|Ɉ
·ð±
´
ÛÕØŠ #Ðìµß#5íß)º.¿c
"šeFïy"Äc ³~ ®ï5ï5ï5ï5(‰ŽŽŽÙ$·$/ ·$9BLH–ŽŸŽÝ=BHSý6Zý6aï5hï5ox¹
 __self_discrÁž __arg1_discrÁµ½£Žß¡Ž€1ý6)P¥Ž&49
ïßï5ï5NS[¯Žásx~Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¿ßÀßÁßLessÁÂßÃßÄß~Å߯ßÇßGreaterÁÈßåºÝÈnûê7/ý67ý6?ï5Gï5O ï5Z<bl¹
zµ7ˆÌ7û9§±Ž&49
»ï5JOW´Žãotz‰;ý6ý6ï5ï5¢<©<°¹¹
Ƶ7ÓÌ7Þæ®=ï (¶Ž)/7 ºŽPX¨?ks¨?:ލ?U¡©¨?p¾Ã
êcÔÙỎåùÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
€1ŸÈŸÈ È éBL{ý6ƒ  c cˆ¢cµ
 `£cbufÁ `àB¤GS
ʨ?Òï5Úä±òý³@ ½Ž"
›eï5ù9>FÁŽç^c€1oý6v ­Cï5<Žº¤µ7±¹¤CÂ,³•t³•4Å•|Å•ü³•!Ú•"üÿ”[$¤•ý6,…• Ž&,Œ•·$Œï5Ž&~ï55¹
5d,í–„ì–
4ƒ—
Œ‚— 

  üì–(ý–®=s-¼ý–üç–. Û¼‰;›—$ü™– Ä:¬Ç–ý6,¨–ÆE,¯–‰;‘<êï5ñ·$ï5<½ï5ÜŽ&òï5ùW¹
Zˆ®=êd¾ž ËО,üžž2·$,®ž,ñŸtñŸüÙŸ'¼ÙŸ
>(!üÙŸ04 
±TŽ&DD  -ü¢ŸmŽ&\ßý6,¹ŸÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙŽ&Í·$òï5ùf÷I÷žJ՜ȥ„È¥
+ Ù¥#äÈ¥4Ü¥
±T·$EDÜ¥ä¥1üÄ¥ ·$Ç¥ 1ï5·$€11ï5 Å¥Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ·$í´YÿK
¨Lç(¡´¦´ø$Ž&/ÆE6?IH®´·´ü=BHSÆEZÆEaï5hï5ox¹
µ7Ì7¥»´þ¹´€1ÆE)P½´&49û9DIQÇ´intÄ:ÆEÆEŽï5ï5œ<£<ª³¹
Àµ7ÍÌ7Øàû9éÉ´&49®=DIQÌ´int‰;ÆEÆEŽï5ï5œ<£<ª³¹
Àµ7ÍÌ7Øà®=é
(δ+19¨?Ò´PX¨?ks¨?:ލ?U¡©¨?p¼Ä¨?ÙÞ³@êï ÷Ó´ë@ÆE#òA+¨?3ï5;E±S^³@h Õ´"¤C-2: Ù´RW€1cÆEj÷Cqï5x<ˆºµ7¢ª¤C³t«¸±¸
·ß·$Ž&,«¸$´¸D±¸¿¸5üý·B$œ¸ÆE,ƒ¸ý6,Џ¹
EŽYš,̹„˹
4â¹
Œá¹ 

 ”๠ü˹(ܹ®=s-¼Ü¹üƹ. Û¼‰;ú¹7üþ¸| Ä:¬¦¹ÆE,¹ý6,”¹‰;‘<éï5ðŽ&ï5<¼ï5Û·$ñï5øW¹
Z®=锕 é­Â?üïÁ>Ž&\ÿÁ,øÃtøÃüæÃ!ŒæÃÿK&Ä@ü´ÃY”MlÎÃÆE,ÄÃŽ&vï5}=ÿK{œÛÉ„ÛÉ÷I ìÉ!äÛÉ4ïÉžJ=DïÉ÷ÉDü×É Ž&ÚÉ DòLøLŽ&€1/ï5 ØÉëJž´T÷I»žJ("à×"å×$)/ˆŠ§ŒˆŽÂˆøÆ·d¹ÚÝ ù`£(#ç×#8#°ØÂ¨?D L¨?- 9
 ¿c~ƒ
‡d 
u¦`#”ا¨?Åͨ?-9âbõúüb h#ì×39@ ë@MËaUòA]e ¨?ƨ?wâbÕ ÝdßÝdg¨?˜âbwöd²±À__self_0Á,¿d¹ëödâbÎübýödâb[üb ,–Ù\Ù% ïÙ¨? õÙ ÁÙ§¨? ÇÙüÙq‡ÚIüíØšôªÙüÖÙ ¨?<þØËa,ôب?XÕd̪Ù¨?¨?Ð+¾¾ñxT»ÞÀÞ
I$»Þ,ÀÞ´»Þ$ÆÞ
›eO,ËÞ\ÆÞØÞRüýÝ[€1°ÞËa,›Þ …i,¢Þ€1z¨?¯'º'WÏhØýh¯°$±ê­­Á¯ °ê¢zì|" NS
Ù¹jdlÀ$ÍêäÈäÈ ArgumentsÁæÈtemplateÁ `çÈÀ `üöMõô]Tdej
Ù©k{ƒø$ëê'Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙù`]b
Ù±ls{ø$˜ë ±l…m (0ˆ$¾ë Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ\a
Ùãm r
z($†ê š
$‹ê£: ššžœ Àž¹ ŸÌ šd…ó¹Â†ý ‘o§¹jÖ ¹já©ky ©k±l ±l±l¨p¡ãmu ãm ÿjI†lß…m^…må·n·(%ê ¨?°%±ê  ¨?¹j'âbÀ%Íê 
¨? ©k' âbø%ëê'

 ¨? ±l(  âbø%˜ë

 ¨?±l(âbˆ%¾ë 
¨?ãm'3âb9?
d QWGM"
ñ ö
ÃÈš%’ꦯë@»ðoÃòA˨?Ó¨?ÅâbÍ‚pÕ¨?¦âb®•p¨?âb¨p¨?gâbo¨pw¨?GâbO ËpZËpb`±nypâbo•pâb@¨pâb¨pâbáÜuâb±Ús«¤ÿð”ÿð
d™ñVüÏðJ§§ƒ© $W|ÆÛv(ŒãðEÞvTûñ©k‹òWüÇñD•pœÝñðo,Óñ /tûò¹jóXüÉòF‚plãòðo,Ùò /löó¹j¬öó,„ô
t0<„ô‘ôYüÏóB·$,æóðo,Üó‚pt6Èyzl€õ¹j´€õ4Žõ
u0DŽõœõZüÖôF¨?<îôðo,äôpt6ãzzö±lüö! ö
·Tù`¨?\ù`¨?€1OŠ|\¤ö„ ö¶ö[üØõ^Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¨?|õõðo,ëõ±lä{þ{ë ¨ö<¨öªöÏh',ªö¯ö\û¨?§öŠ|ù` ¥öËao¾6Ïh|„Ø÷±l´Ò÷$´ø Û¼¨?H±lÛù`O “ø±lÛù`§¨?<šø Û¼¨?  øÉøü÷º]ü÷÷*à|¤³÷ðo,©÷ÕdÌü÷Õdü÷÷¨?«(¾ÁnL½ù±lÔ½ùÇù
·Tù`¨?_|”|€1Dã÷\Ëù„ÇùÝù^üùPà||£ùðo,™ù±l6ëŸ Ïù<ÏùÑùÏh',ÑùÖù_·¨?Îù÷Íù` ÌùËao¾òÏh{L€û±l|úú$Õû Û¼¨?H±lÛù`O ´û±lÛù`§¨?<»û Û¼¨? Áûêûü¾ú¬`ü˜û*à|¤Ûúðo,ÑúÕdÌûÕdü˜û¨?«(¾ÁnLÓüãmâüaü§ü;ãm\½üðo,³ü /(&­ 
¨? ¨?o'3âb[`
ùcqvejˆ¬ ë@« wµòA¼¨?è?´âb» ðoÅðoÌë±øŸ‰âbù°ˆ€'Á’€dÁ’
¶cÎ’¨? 0œí’Œí’
s"Üí’,
{J<$§“ Û¼ù`$Ó Û¼ù`$ß“ Û¼¨nü¢’½ šüþ‘ì §ð”düÒ‘ž wŒâ‘‘on©kL¹jî ÉÉˆË X*¢åîÿTÇŒ]±l ±lüãm뀊»´ŠŒãŠc¼‘o©k$°–º–eüº• w´î•†ŽLÆ•©k$Ñ•ÀKü¸˜‘o¹j$á˜ë˜füá—Š†Ž´—˜†ŽLñ—¹jDü— Iüš"o¹j·$$¹šÚgüÙ†Ž´ì™†ŽLЙ·$,Û™ Iüê›$‘o¹j¨?$˜œ¢œhüœ›†Ž´É›†ŽLª›¨?4µ›êIüì"ñ
·T¨?ù`
ŽÄõª’ ìñüÒ<o±l$˜ž¢žiüùœ©†Ž´±†Žà|$—±l°õ
 Pž’ÚüŽ  “ 
·T¨?ù`
$Ž ´— ‘” Ü“ üôŸ:‘o±l$¸  jüŸ³†Ž´ÓŸ†ŽL©Ÿà|$´Ÿ±l°õ
 P…”Úüð¡"õ¡ž’$ð¡Äù¡ª’ ìõ¡üÝ¡5‘o±l$œ¢¦¢kü‹¡†Ž´¼¡†ŽL—¡à|$¢¡±l Ì Pž’Êü÷£ ü£…”$÷£´€¤‘” Üü£üä£3‘o±l$¡¤«¤lü†£¥†Ž´Ã£†ŽL™£à|$¤£±l Ì P…”ʼ¥‘oãm$ã¥í¥müô¤y†Ž´¡¥†ŽL€¥ãm$‹¥šH\㨑oœã¨,ï¨
Ùo2<ï¨ü¨nü·¨E‘oTΨùˆ,Ĩðow7»š~`(×±·$
Ù·$-5x(鱨?((„± ­(‰±³1¹j<pC·$¤ý6«¨?yÝdhrÕ›Ö
Ù¨?¨)±)‹± €1p"+5`*×±·$·$(-
·ß·$·$BGOUx*鱨?¨?(-
·ß¨?¨?BGOS[g*˜±»H*±p‚pý6ý6Ýd¼ÝdÃJ¹
WaªžPŸô`+×±·$·$(-
»·$>CKO[i+â±x+鱨?¨?(-
»¨?>CK+±¾+š±í ‰;pp#‰;ý6ý6&Ýd­Ýd´Z¹
gX}Œ¡k¢ñ`,×±·$·$(-
ïß·$·$BGOS_o,â±Û‰;x,鱨? ¨?(-
ïߨ?¨?B GO,©±P,Ÿ±Á#
Ä:$p+p2Ä:Eý6Mý6U]ÕdeÝdÂÝdÉq¹
~‰¤ª´¥`-×±·$
›e·$ù3 -«±Dx-鱨?
›e¨?¾§1F>-¯±Äf€1q‚px ¾§ƒ€1Âý6ÉÝdˆ¡º®¸µ§úý§¸(.±± ¨?`.×± ¨?·$'âbx.é± ¨?
¨?' 
3 âb
ûc¨­œ¡otÉ.¶±Èá ë@ì‚póòAú¨?¨?óâbúý6¨?ÒâbÙödàÝdç=±KVý6âbLödâb¼ªq´ø²¤ø²
x”³süƲNÇŒœÚ²¯¬XTû³·$‹´tüÔ³7·$,볂p,á³ /\ú´¨?‹µuüд;¨?<è´p,Þ´ //ŹÎ/ù €1ÅŒ&0°0–º¹j¹j(-
·ß¹j¹jBGO0йÓH0ǹŌŌ‚pŒ‚p5¹
BL̯½°1–º¹j¹j(-
»¹j>CK1Õ¹Ö1Ò¹‰;ŌŌ‚p‚p6¹
CM”±º°2–º¹j¹j(-
ïß¹j¹jBGO2á¹ÙP2×¹Ä:ŌŌ‚p‚p6¹
CMÙ²¾°3–º¹j
›e¹j¾§1 3ã¹B3ç¹Ü$€1/ÅŒ7Ȩ?p|Oº\f‘´¦(4é¹ ¨?°4–º  ¨?¹j'3âb[`°ˆmraf4î¹àœë@§ÅŒ¯òA¨?½¨?®âbµ ‚p¿‚pÆå±òüð¶âbò°ˆ\ð¼ Ë•½ ¨?üμX ­ü¦¼ É·½xüø»¿ÇŒœˆ¼¹je·$¨?ˆ0ÌÖ¾¹j·$$ù¾ƒ¿yüŒ¾w ÇŒij¾°¹L™¾·$¤¾argÁNìªÀ¹j¨?$ÑÀÛÀzüÚ¿°¹ćÀ°¹L迨?4ó¿êIlÂÁ¹j¬ÂÁ,ÐÁÿj,<ÐÁÝÁ{ü”ÁI¹jd«ÁÅŒ,¡Á‚pq7ÿjwDÔÎÔÔÎ<ÝÎ
©/,DåÎŒÝÎôΊü›ÎY$ÅÎ  ©/,¦Î‚pD­Î•½ !Sɼ¢D£Ï¤£Ï¬Ï
©/-4°Ï\¬Ï¾ÏüúÎD€1˜Ï“½,Ïðo4ˆÏ€1t•½% (V‡¾¦DÝÏ„ÝÏ,æÏ
©/-<æÏôÏŒüÃÏ1€1ÒÏ“½,ÌÏ€1b•½?É¿¤Ó×  ¤]¤]V¦]Á‚]üß3ø¤”&ï5tî׌þ× ¼ÀüÓ×=,è×
—ĈD<üè×(“Øü¤×o€1Ì׎&,¹×€1káÀàï5,î×¼À½À¾ÀË¿ÀÀÀÌÁÀÂÀGÃÀÄÀFÅÀÆÀ×`šÁ¬S øB š½ÉÁ¤žà áÀt¹àŒÉà ¼Àüžà=,³àÉÁVA9ü³à(ÞàŽüñÝí€1¥ÞŽ&,’Þ€1iáÀ¯ï5,¹à¹Âš .RÉÁ¡¤Ñè áÀŒëè ¼ÀüÑè,$æè
–ÄL7¼æèüÂè< Ž&‚éüñäŽ&\‡åï5náÀ§¹Â1ÿÅ(>Ç‹ ¨?>é‹€1!âbINübZ_Nl>Ì‹åë@ ·/òA ¨?§âb˜  €1¥¼È­Ì±ÙãºÈâbÙübô(?Ü ¨?€1!âbINübZ_Nlêë@ ù/òA ¨?§âb˜ºÈ ¼È¨Ç±ÔÞºÈâbÔübï€1€1(-
·ß€1€1BGOíH@ãšÊšÊ¼È¼È7¹
DN³Ë¿ï €1šÊ&0 Û¼ 
¨?¨?ܳüŠRÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¯ÍüŸ"¯Í$– t Û¼¯ÍØüŒLÝÍü¡"€1$˜ ~)€14(Bš  ¨?³@(-5óLë@W 1aòAh¨?ox±³@˜
¨?
¨?Ó
 •½•½LocationÁ—½filenameÁ¯V˜½š¯V™½colÁ¯Vš½ _filenameÁ¯VirBð¸tý–Ð 
  
£T¯Í
+  , ùFž"#ùiž"#€Šüï NL¨? /ùE@#áE#
ÜW Q $ŒÜ  
V
 
Üô $…

e)
T…
üô 1,™

gI
d™
üô I

hJ

ŒÚ
 Û¼¨?üô x”Ç

jd: üÇ
%T‡$
ÉV
4‹„‚ Û¼¨?üô Ÿ

l; ìö

ËV§ „¢ Û¼¨nüô ¿$
m;
´<€
|€,ˆ
n(<ˆ„ÿäôû
r2¬û üí ¦»ü§ ìüÊ É€1¦ Ø4†
©k$•
·$
 ¨?¨?˜Ñܼ
ÝÍ ¨?u¨?k˜ÑbÑ ÝÍís©k°w †Ž†Ž†Ž†Žë†Ž%†Ž^†Žxà|ßà|q¨?£ãm ¨n=€1| ØÝðo ‘oÏùˆèÊÀ kvsÁê¹  ð
ÿ
µ¯Ò€ŠÑ¥Ó£ËÓüÓU­Ô,ÞÔ©Õ¾ØÕ ÖVÎÖ-–×îàש—ØyØMØT
&
°œÄüáx 
»,‘Ô |U Ø
Ûü•Æ,<½2 €1¸¨Þ©k·$ºÙÔåãݯ¨ÞSÝÍ)§ÊJÀN Rtarget_module_path_and_locÁoÝÚsêÝÝ¢Þt¨Þ" œ¹Œ¹´Š 
 ü¹ 
y
F ü¹/
z J/ü¹7ãŠTü¸8ü©H
Øý1ü°A òóüÝÁ Ø·$,ÿ¨?4ŠÛ‚p¸¹jäÅŒ*°¹3°¹m°¹£ÇŒ¬Êb fêj¬´ŠåÒῃâãŠ^÷â/ØØ °GÙœ
øNÇ    øHÿœ' „ª é'øIÉ) ”ö é'øJ—ž( J¾žŒÃž é'øKãž( 
KŠŸŒŸ é'øL¯Ÿ)  Lן”ÜŸ é'øMýŸ) 
M¥ ”ª  é',ôŸNå  „ê  é' øO…¡!


O¥¡
”ª¡ é'
øPÇ¡    Pæ¡ Œë¡ é' øQ‡¢    Q¦¢ Œ«¢ é' øRÇ¢!


Rç¢
”ì¢ é'
”‰£ é £ü©œöÄŽ&\Åœe oÊw$Ñ~tù¦S4Ø ˆ(ù`3¨?:AD§Ø ˆŽ(ù`3¨?:AÌÏ‹ áâ&·/1€18?Ôó æç&ù/1€18?
 ~‚ƒŽÄË­šéˆ§ÉáâæçíÀ…|â”|¬FromStrÁ<Ï|ïyâ|×ç| `íì|ë Ë,™ ×\²k élâr
ýd´v¥LÑ|Æ\é‡ç„劌ýÇŒ­‘å\ö}„Ä®Dƒ~¼À¿
ªÅŠ,þ(ÆÕ$º4ÇÖ$ÕAÈ,ÁMÉè,Š[ÊüÓüÓ! A lightweight logging facade.ÁõúüùIF The `log` crate provides a single logging API that abstracts over theÁüÃMJ actual logging implementation. Libraries can use the logging API providedÁü‘MJ by this crate, and the consumer of those libraries can choose the loggingÁüß:7 implementation that is most suitable for its use case.ÁšúüžOL If no logging implementation is selected, the facade falls back to a "noop"ÁüîKH implementation that ignores all log messages. The overhead in this caseÁüº>; is very small - just an integer load, comparison and jump.ÁùúüýPM A log request consists of a _target_, a _level_, and a _body_. A target is aÁüÎPM string which defaults to the module path of the location of the log request,ÁüŸ OL though that default may be overridden. Logger implementations typically useÁüï C@ the target to filter requests based on some user configuration.Á³
ú
 # UsageÁÃ
úüÇ
RO The basic use of the log crate is through the five logging macros: [`error!`],Áüš 30 [`warn!`], [`info!`], [`debug!`] and [`trace!`]ÁüÎ ?< where `error!` represents the highest-priority log messagesÁüŽ IF and `trace!` the lowest. The log messages are filtered by configuringÁüØ <9 the log level to exclude messages with a lower priority.Áü•
IF Each of these macros accept format strings similarly to [`println!`].Áß
úã
úüç
" [`error!`]: ./macro.error.htmlÁüŠ  [`warn!`]: ./macro.warn.htmlÁü«  [`info!`]: ./macro.info.htmlÁüÌ" [`debug!`]: ./macro.debug.htmlÁüï" [`trace!`]: ./macro.trace.htmlÁü’IF [`println!`]: https://doc.rust-lang.org/stable/std/macro.println.htmlÁÜúüà]Z Avoid writing expressions with side-effects in log statements. They may not be evaluated.Á¾úœÂ ## In librariesÁÖúüÚGD Libraries should link only to the `log` crate, and use the providedÁü¢NK macros to log whatever information will be useful to downstream consumers.Áñú„õ
### ExamplesÁú ```Áü’.+ # #[derive(Debug)] pub struct Yak(String);ÁüÁ1. # impl Yak { fn shave(&mut self, _: u32) {} }Áüó52 # fn find_a_razor() -> Result<u32, u32> { Ok(1) }ÁÔ© use log::{info, warn};ÁÄúüÈ)& pub fn shave_the_yak(yak: &mut Yak) {ÁüòJG info!(target: "yak_events", "Commencing yak shaving for {yak:?}");Á½ú loop {ÁüÐ" match find_a_razor() {Áôó Ok(razor) => {Áü’41 info!("Razor located: {razor}");ÁüÇ%" yak.shave(razor);ÁÔí break;ÁŒˆìš Err(err) => {Áü¸GD warn!("Unable to locate a razor: {err}, retrying");ÁŒ€Êl’
L ”° # fn main() {}ÁÅ…Ëú¬Ï ## In executablesÁåúüéUR Executables should choose a logging implementation and initialize it early in theÁü¿LI runtime of the program. Logging implementations will typically include aÁüŒ:7 function to do this. Any log messages generated beforeÁüÇ63 the implementation is initialized will be ignored.Áþúü‚A> The executable itself may use the `log` crate to log as well.ÁÄú ### WarningÁØúüÜ41 The logging system may only be initialized once.ÁúÌ• ## Structured loggingÁ¯úü³FC If you enable the `kv` feature you can associate structured valuesÁüúMJ with your log records. If we take the example from before, we can includeÁüÈDA some additional context besides what's in the formatted message:Áú<‘Å…Ü™ # use serde::Serialize;Áüµ96 # #[derive(Debug, Serialize)] pub struct Yak(String);Áüï1ކü¡@= # fn find_a_razor() -> Result<u32, std::io::Error> { Ok(1) }Áüâ" # #[cfg(feature = "kv_serde")]ÁŒ… # fn main() {ÁÔ—‡‡²úü¶)·‡üàIF info!(target: "yak_events", yak:serde; "Commencing yak shaving");Áª úɈü½ "áˆôà Œ‰üÿ 2/ info!(razor; "Razor located");Áü²!%ò‰ÔØ! ŠŒó!ÊÜ…" Err(e) => {Áü¡"GD warn!(e:err; "Unable to locate a razor, retrying");ÁŒé"Êlû"á‹L‰#÷‹,“#‰Œ<™# # }Áü¡#'$ # #[cfg(not(feature = "kv_serde"))]Á”É#—Œ<Ü#Å…ä#úüè#96 See the [`kv`] module documentation for more details.Á¢$úü¦$'$ # Available logging implementationsÁÎ$úüÒ$:7 In order to produce log output executables have to useÁü%74 a logger implementation compatible with the facade.ÁüÅ%<9 There are many available implementations to choose from,Áü‚&+( here are some of the most popular ones:Á®&úì²& * Simple minimal loggers:Á´Ð& * [env_logger]ÁŒç& * [colog]ÁÌù& * [simple_logger]Á¬“' * [simplelog]Áì©' * [pretty_env_logger]Á¬Ç' * [stderrlog]ÁÄÝ' * [flexi_logger]Á¼ö' * [call_logger]Á´Ž( * [std-logger]Áì¥( * [structured-logger]Á¬Ã( * [clang_log]ÁŒÙ( * [ftail]Áüë(&# * Complex configurable frameworks:Á”’) * [log4rs]Á¤¥) * [logforth]Á„º)
* [fern]Á¬Ë) * [spdlog-rs]Áüá)$! * Adaptors for other facilities:Á”†* * [syslog]Á¼™* * [slog-stdlog]Áü±*" * [systemd-journal-logger]Á¼Ô* * [android_log]ÁÔì* * [win_dbg_logger]Á¬‡+ * [db_logger]ÁÄ+ * [log-to-defmt]ÁÔ¶+ * [logcontrol-log]ÁüÑ+ * For WebAssembly binaries:Á¼ñ+ * [console_log]Áä‰, * For dynamic libraries:Áü¦,b_ * You may need to construct an FFI-safe wrapper over `log` to initialize in your librariesÁ„‰-
* Utilities:Áœš- * [log_err]Á´®- * [log-reload]ÁäÅ- * [alterable_logger]Áâ-úÜæ- # Implementing a LoggerÁ.úü†.PM Loggers implement the [`Log`] trait. Here's a very basic example that simplyÁü×.KH logs all messages at the [`Error`][level_link], [`Warn`][level_link] orÁü£/*' [`Info`][level_link] levels to stdout:ÁÎ/ú<Ò/Å…üÚ/'$ use log::{Record, Level, Metadata};Á0úĆ0 struct SimpleLogger;ÁŸ0úü£0$! impl log::Log for SimpleLogger {ÁüÈ085 fn enabled(&self, metadata: &Metadata) -> bool {Áü1+( metadata.level() <= Level::InfoÁL­1÷‹·1úü»1(% fn log(&self, record: &Record) {Áüä10-
 ~‚ƒŽÄË­šéˆ§ÉáâæçíC<ÀD<âC<¬­ñ<<ïy;<×:< `í9<ë Ë8< ×7< é6<
ý5<¥4<Æ3<ç1</<Ç-<å+<„Ä®*<¼À¿
)<ÅŠ(<ÆÕ'<ÇÖ&<È%<Éè$<ʼ=¿=Â=Äð{¹=D|®=ŒÅ|š=Ü|Ž===„=t=w=T€}4„}”Œ(|ü™= Ÿ ´%  Š8Ê4—& , Ÿ8Ê4 & ¦8$ «8ê4­& ³, µ8ê& ¼8$ Á, Ã8lvlÁÄ& Ç8$ Ì, Î Ï ú
, Ð8keyÁÑ& Ô8¯Õ, Ø Ù æ& Ú, Û8captureÁ& ã8¯ä- ç, é ê ø ë, í8»& ó8- ù$ û ü% ý, ÿ  ˆ, 8ã¸& 8¯ *Œ  ü   û 8š8ºîž ¢, ¤8ºî¥% ¨8²8ºîµ¹, ¼8'Â8ª„ÄÕ8ºîØÜ, ß8'å8× ð ñ ó õ , 8,'8âl‰'8¿
˜  ê , ­8Ê$ ´, Æ8'Ì8â'Û8ë è é ò, ê ë ð, ì8ã¸í ñ$ ó8ºî$ ˆ š  è, œ8ê4$ £, ¥8'«8âl­'º8¹  Ç È É$ Ê, Ì8'Ò8â'á8 ã æ ç$ é û ü Ó , ý þ Ð  ÿ Ï 
, 8, '8¥Lˆ    , 8üî$ ˜ , š 8, '  8Æ ­  ®  Î  , ¯ 8üî° , ´  µ  ¿ & , · 8¾ï<¸ 
À  Â , Ä  Å  Ì , Æ 8»
Í $ Ñ  Ò 8Õ  Ø  Ù  Û 8 Ú $ Ü % ë % ý  Û! ž"8Ê4Ü!& â!, ä!8Ê4å!& ë!8$ì!$ ð!8ê4ò!& ø!, ú!8ê4û!& "8$"$ †", ˆ"8ºî‰"& Œ"8$"$ ", “" ”" œ", •"8ã¸"& ™"8¯š" "* " £" ±% ¤" °%8®"8ºî²" ¶", ¸"8ºî¹"% ¼"8Æ"8ºîÉ"Í", Ð"8,Ñ"'Ö"8ª„Ø"é"8ºîì"ð", ó"8,ô"'ù"8×Lû" „# …# ‡# ª%, •#8,#'#8âl#'ª#8¿
¬# ¯# Ÿ%, Á#8Ê4Â#$ È#, Ú#8,Û#'à#8âlâ#'ï#8ë\ñ# ü# ý# †$, þ# ÿ# „$, €$8ã¸$ …$$ ‡$8ºî™$$ œ$ ®$ ¯$ ü$, °$8ê4±$$ ·$, ¹$8,º$'¿$8âlÁ$'Î$8¹ \Ð$ Û$ Ü$ Ý$$ Þ$, à$8,á$'æ$8âlè$'õ$8 ÷$ ú$ û$$ ý$ % %$ %%  %% ²%Ä¥kü‚cMJ Determines if a message logged at the specified level in that module willÁtÐc be logged.ÁßcúüãcOL This can be used to avoid expensive computation of log message arguments ifÁü³d(% the message would be ignored anyway.ÁÜdútàd # ExamplesÁïdú<ódÅ…üûd)& use log::{debug, log_enabled, Level};Á¥eúü©e$! # struct Data { x: u32, y: u32 }ÁüÎe96 # fn expensive_call() -> Data { Data { x: 0, y: 0 } }Áüˆf74 # let my_logger = log::__private_api::GlobalLogger;ÁüÀf# if log_enabled!(Level::Debug) {Áüäf$! let data = expensive_call();Áü‰g>; debug!("expensive debug data: {} {}", data.x, data.y);Á,Èg‰ŒÎgúüÒg52 if log_enabled!(target: "Global", Level::Debug) {Áüˆh# let data = expensive_call();Áü¬hOL debug!(target: "Global", "expensive debug data: {} {}", data.x, data.y);Á,üh‰Œ‚iúü†i63 if log_enabled!(logger: my_logger, Level::Debug) {Áü½i#˜‡üáiOŇ,±j‰Œ<·jÅ…¿júüÃjQN This macro accepts the same `target` and `logger` arguments as [`macro@log`].Á(|•kÿK ¾k ³r l Ãl8Ê4Žl& ”l, l8Ê4—l& l8$žl$ ¢l8ê4¤l& ªl, ¬l8ê4­l& ³l8$´l$ ¸l, ºl8ºî»l& ¾l8$¿l*Ål Èl ®m Él ­m, Ól8,Ôl'Ùl8élÛl èl él §m8Ê4êl& ðl, òl8,ól'øl8ýdúl †m ‡m m, ˆm8Ê4‰m$ m8ê4m& ˜m, šm8ê4m$ ¡m, £m8ºî¤m% ¯m êm Šn 8Ê4ëm& ñm, óm8Ê4ôm& úm8$ûm$ ÿm, n8ºîn& …n8$†n*Œn n “o n o, šn8,n' n
L"üÞ•&·$$ïß$ü™–C\œ–ö÷ ö·$ ÷Ž&Ä:# ¨–#
$$©–¹
‚#´Ÿ—·$&'ðyñy'D¼—Á—%%ù/üÜ—4Dß—ø øÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
·$·$ðy% ï—%
' ,è—ܬš·$)Åc)üΚ6Ñšùúû ù·$ ú c cˆ¢cµ
 `£c“A `àB¤GS
ûë@( Õš(
)$Öš×ÜšT¯›·$+,-./23üÀ›(TÛï5”M**ÿKÀ Λ¬žžüà+( Returns the most verbose logging level.Á¥ž·$**
,ü¢Ÿ,üÖž96 Converts the `Level` to the equivalent `LevelFilter`.Á|©Ÿü ü·$Ž&* ¹Ÿ*
-$ºŸü¢¡$ü• 52 Returns the string representation of the `Level`.ÁÏ úü× FC This returns the same string as the `fmt::Display` implementation.Á4©¡ý ý·$å«* °¡*
.$±¡üƒ¥+üü¡1. Iterate through all supported logging levels.Á²¢úüº¢KH The order of iteration is from more severe to less severe log messages.ÁŠ£út’£û‚¥£ú<­£Å…œ¹£ use log::Level;ÁÑ£úüÙ£# let mut levels = Level::iter();Á¤úü‰¤2/ assert_eq!(Some(Level::Error), levels.next());ÁüÀ¤2/ assert_eq!(Some(Level::Trace), levels.last());Á<÷¤Å…$Š¥0**
/ÐZ”¥//â­â­MapÁå­ùæ­±Å@Iœóë ¶¥££¹ƒ£¹„£þ-'ºˆÉ¬gï5íLÍìš¼œùM𼬙¥š¼úM·$\¢¥½ÆÑ½"â½/Ä¥/<closure_kind>Á1<closure_signature>Á1<upvars>Á11/íLü±ª(üñ¥/, Get the next-highest `Level` from this one.Á¥¦úü­¦`] If the current `Level` is at the highest level, the returned `Level` will be the same as theÁ„’§
current one.Á§§út¯§û‚§ú<ʧÅ…œÖ§¹î§úäö§ let level = Level::Info;Á—¨úüŸ¨96 assert_eq!(Level::Debug, level.increment_severity());ÁüݨNK assert_eq!(Level::Trace, level.increment_severity().increment_severity());Áü°©pm assert_eq!(Level::Trace, level.increment_severity().increment_severity().increment_severity()); // max levelÁ<¥ªÅ…”¸ªþ þ·$·$* ˪*
2$̪ü°(üÄ«.+ Get the next-lowest `Level` from this one.Á÷«úüÿ«_\ If the current `Level` is at the lowest level, the returned `Level` will be the same as theÁ„㬽¿ø¬út€­û‚“­ú<›­Å…œ§­¹¿­úäÇ­¨Àè­úüð­85 assert_eq!(Level::Warn, level.decrement_severity());Áü­®NK assert_eq!(Level::Error, level.decrement_severity().decrement_severity());Áü€¯pm assert_eq!(Level::Error, level.decrement_severity().decrement_severity().decrement_severity()); // min levelÁ<õ¯Å…”ˆ°ÿ ÿ·$·$* ›°*
3$œ°ü÷%Ž&5·ß5üý·#€¸ Ž& ·$4 ƒ¸4
5$„¸¹
l,üø&Ž&7ïß7üþ¸=\¹ƒ Ž& ƒ·$Ä:6 ¹6
7$޹¹
Š-äþ¹Ž&9:ðyñy:D¡º¦º88ù/üÁº:Dĺ Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ž&Ž&ðy8 Ôº8
: ,ͺü½!Ž&<Åc<üŽ6Ƚ Ž&  c cˆ¢cµ
 `£c“A `àB¤GS
ë@; ̽;
<$ͽ×Ó½„¦¾Ž&>?@ABEFü½¾.TÀ¾ï5ëJ==÷IÀ ˾ÜïÁüªÁ2/ Returns the most verbose logging level filter.ÁöÁŽ&==
?ü´Ã'ü³Â.+ Converts `self` to the equivalent `Level`.ÁæÂúüîÂ30 Returns `None` if `self` is `LevelFilter::Off`.ÁD»Ãˆ ˆŽ&”M= ÄÃ=
@$ÅÃü¦Å$ü“Ä;8 Returns the string representation of the `LevelFilter`.ÁÓÄúüÛÄF£¶4­Å Ž&å«= ´Å=
A$µÅü–É+ü€Æ30 Iterate through all supported filtering levels.Á¸ÆúüÀÆB? The order of iteration is from less to more verbose filtering.Á‡ÇútÇû‚¢Çú<ªÇÅ…̶Ç use log::LevelFilter;ÁÔÇúüÜÇ)& let mut levels = LevelFilter::iter();ÁŠÈúü’È63 assert_eq!(Some(LevelFilter::Off), levels.next());ÁüÍÈ85 assert_eq!(Some(LevelFilter::Trace), levels.last());Á<ŠÉÅ…$ÉC==
BÐb§ÉBBâ­â­лå­ùæ­±Å@Iœóë ¶¥„½ì_Íì€ØcùM€Ø¬¬É€ØúMŽ&\µÉïØþØ"ÙB×ÉB¨½DÀ½DݽDDBì_üÏ(ü„Ê52 Get the next-highest `LevelFilter` from this one.Á¾ÊúüÆÊ`] If the current `LevelFilter` is at the highest level, the returned `LevelFilter` will be theÁä«Ë same as the current one.ÁÌËútÔËû‚çËú<ïËÅ…ÌûËíÔ™Ìúü¡Ì)& let level_filter = LevelFilter::Info;ÁÏÌúü×ÌFC assert_eq!(LevelFilter::Debug, level_filter.increment_severity());Áü¢Í[X assert_eq!(LevelFilter::Trace, level_filter.increment_severity().increment_severity());Áü‚Î}z assert_eq!(LevelFilter::Trace, level_filter.increment_severity().increment_severity().increment_severity()); // max levelÁ<„ÏÅ…”—ÏŠ ŠŽ&Ž&= ªÏ=
E$«Ïü²Ö(ü£Ð41 Get the next-lowest `LevelFilter` from this one.ÁÜÐúüäÐ_\ If the current `LevelFilter` is at the lowest level, the returned `LevelFilter` will be theÁäÈÑÊÚéÑútñÑû‚„Òú<ŒÒÅ…̘ÒíÔ¶Òúü¾Ò)ÂÛìÒúüôÒEB assert_eq!(LevelFilter::Warn, level_filter.decrement_severity());Áü¾Ó[X assert_eq!(LevelFilter::Error, level_filter.decrement_severity().decrement_severity());ÁüžÔnk assert_eq!(LevelFilter::Off, level_filter.decrement_severity().decrement_severity().decrement_severity());Áü‘Õ assert_eq!(LevelFilter::Off, level_filter.decrement_severity().decrement_severity().decrement_severity().decrement_severity()); // min levelÁ<¦ÖÅ…”¹Ö Ž&Ž&= ÌÖ=
F$ÍÖܽØ
HHË(IÂØÄíØðØŒ ŒË(ç0G ôØG
I
$õØô‹Ú8Â)ü®Ú%8ŽŽÂ)L·ßLüÚÚ"ÝÚ Â) Â)K àÚK
L8$áÚ¹
,çÚüªÛ8Â)N»NüÐÛ2ÓÛ Â) Â)‰;M ×ÛM
N8$ØÛ¹
,ÞÛü²Ü&8Â)PïßPüßÜB\âÜ Â) Â)Ä:O îÜO
P8$ïܹ
,õÜüËÝ+8Â)R›eRüýÝ3$€Þ˜ ˜Â) …i€1QSS ›ÞQÍì…i …Þ¢e…iŒˆÞ
R8…i$œÞº]402œˆð
UUÊ*VWXYZ[]^`aðüÏð%Ô¢ð Returns a new builder.Á<Öðº+TT
V
üÇñ)¬Ÿñ The message body.Á$Îñš šÊ* šäÈäȵjæÈÈj `çÈÀ `üöMõô]Td
T ÓñT
W
$ÔñüÉò'ü‘ò%" Metadata about the log directive.ÁDÐò Ê* ­,T ÙòT
X
$ÚòäÏóü•ó'$ The verbosity level of the message.Á,Öóœ œÊ*·$T ÜóT
Y
$ÝóüÖôü—ô,) The name of the target of the directive.Á4Ýô Ê*ç0T äôT
Z
$åôüØõ,ü¢õ# The module path of the message.Á\ßõž žÊ*Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙç0T ëõT
[
$ìõ¤ö[¨½\À½\ݽ\\[Š|ü÷8ü¼ö@= The module path of the message, if it is a `'static` string.Á”–÷Ÿ ŸÊ*Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙå«T ©÷T
]
$ª÷üù%üÏø+( The source file containing the message.Á$”ù   Ê*°ôT ™ùT
^
$šùËù^¨½_À½_ݽ__^÷ü¾ú1üãùHE The source file containing the message, if it is a `'static` string.Á\Åú¡ ¡Ê*åöT ÑúT
`
$Òúü§ü!üðû$! The line containing the message.Á$®ü¢ ¢Ê*ãmT ³üT
a
$´üÔï
ccº+defghijklmnôüÒ‘!üŽ" Construct new `RecordBuilder`.Á·Žú俎 The default options are:ÁàŽúüèŽ" - `args`: [`format_args!("")`]Áü1. - `metadata`: [`Metadata::builder().build()`]ÁÜÅ - `module_path`: `None`Á¤å - `file`: `None`Á¤þ - `line`: `None`ÁúüŸNK [`format_args!("")`]: https://doc.rust-lang.org/std/macro.format_args.htmlÁüòMJ [`Metadata::builder().build()`]: struct.MetadataBuilder.html#method.buildÁÙ‘º+bb
d
üº•Jüö”1. Set [`args`](struct.Record.html#method.args).Á$Á•£ £º+²ï¸b Æ•b
e
$Ë•À¡Füá—LüÀ–Ž Set [`metadata`](struct.Record.html#method.metadata). Construct a `Metadata` object with [`MetadataBuilder`](struct.MetadataBuilder.html).ÁDè—¤ ¤º+­,¹ƒb ñ—b
f
$ö— 1GüÙ?üñ˜?< Set [`Metadata::level`](struct.Metadata.html#method.level).Á,Ê™¥ ¥º+·$è„b Йb
g
$Õ™ ÅGüœ›CüÉš@= Set [`Metadata::target`](struct.Metadata.html#method.target)Á4£›¦ ¦º+ç0˜†b ª›b
h
$¯›êYHüùœNü¨œ>; Set [`module_path`](struct.Record.html#method.module_path)Á\€§ §º+°ôƇb Œb
i
$õ
3IüŸZü¨žTQ Set [`module_path`](struct.Record.html#method.module_path) to a `'static` stringÁ”–Ÿ¨ ¨º+åö‹‰b ©Ÿb
j
$®Ÿõ
Jü‹¡GüÈ 0- Set [`file`](struct.Record.html#method.file)Á$’¡© ©º+°ô¬Šb —¡b
k
$œ¡ÌñJü†£Sü¬¢GD Set [`file`](struct.Record.html#method.file) to a `'static` string.Á\£ª ªº+åöä‹b ™£b
l
$ž£ÌÈKüô¤Cü±¤0- Set [`line`](struct.Record.html#method.line)Á$û¤« «º+ãm…b €¥b
m
$…¥šcLü·¨!üø§,) Invoke the builder and return a `Record`Á,¾¨¬ ¬º+Ê*b Ĩb
n
$Ũü€©"8­­ô+p´p¤©©<¬©ô+oo
p8¬ý±
rr­,stu‚²üƲ'Ô™²‡í<ͲÁ-qq
s
äÔ³üš³'Âð,Û³® ®­,·$q á³q
t
$â³üдü‘´,Ïñ4×´¯ ¯­,ç0q Þ´q
u
$ߴ䱺
wwÁ-xyz{¶ºüø»#üÔº&# Construct a new `MetadataBuilder`.Áÿºú䇻îû¨»úä°» - `level`: `Level::Info`Á¤Ñ» - `target`: `""`Áÿ»Á-vv
x
üŒ¾?ü½½<9 Setter for [`level`](struct.Metadata.html#method.level).Á,“¾° °Á-·$ô”v ™¾v
y
$ž¾ã¸L\üÚ¿Eü‰¿>; Setter for [`target`](struct.Metadata.html#method.target).Á4῱ ±Á-ç0£–v è¿v
z
$í¿êÞ\ü”Á#üáÀ  Returns a `Metadata` object.Á,›Á² ²Á-­,v ¡Áv
{
$¢ÁüáÁ$8³³À.}´}¤ŒÂ<ÂÀ.||
}8ÔÿÂüÀÂ>; A trait encapsulating the operations required of a logger.Á‰Ã~~Îìüÿ ½™$ŽÃÌì½™$•Ã~µ™=Ê™0Û™$µ™OÊ™BÛ™6üÆÇ/ü ÃDA Determines if a log message with the specified metadata would beÁ\éà logged.ÁùÃúüÄFC This is used by the `log_enabled!` macro to allow callers to avoidÁüÌÄJG expensive computation of log message arguments if the message would beÁ¬›Å discarded anyway.ÁµÅú´½Å # For implementorsÁØÅúüàÅ@= This method isn't called automatically by the `log!` macros.Áü¥ÆPM It's up to an implementation of the `Log` trait to call `enabled` in its ownÁüúÆGD `log` method implementation to guarantee that filtering is applied.Á<ÉÇ´µ ´½™ µ­­Á¯ °ê¢zì|" ~ ÑÇ~
½™$ÒÇ DØÇüéÉ´ûÇ Logs the `Record`.Á–Èú´žÈŒœ¹ÈúüÁÈGD Note that `enabled` is *not* necessarily called before this method.ÁüÉC@ Implementations of `log` should perform all necessary filteringÁ|ÕÉ internally.ÁìÉ·¸¹ ·½™ ¸ššžœ Àž¹ ŸÌ šd…ó¹Â†ý¹€1~ ðÉ~
½™$ñÉ 4÷É„€ÌüŽÊ! Flushes any buffered records.Á´Êú´¼ÊŒœ×ÊúüßÊ@ºœü¤ËWT It can be called manually on shut-down to ensure any in-flight records are flushed.Á,ƒÌº º½™€1~ ‰Ì~
½™$ŠÌ„ºÌLÁÌø.ŠD¶>ÄÕƒ/*ø.´ÍÌø.…üêÌ'<íÌ»¼½ »ø. ¼­­Á¯ °ê¢zì|" ½ õÌ
$öÌ üÌ̭Ͱ;¿À ¾ø. ¿ššžœ Àž¹ ŸÌ šd…ó¹Â†ýÀ€1 ´Í
$µÍ »Í|ÎÍ,ÑÍÁ Áø.€1 ×Í
$ØÍüäÍ08Â¥ÂÎì©/ éÍ~©/Τ/ŠŒŠŒ79ü›Î.<žÎÃÄŠä/ Ä­­Á¯ °ê¢zì|" ň ¦Îˆ
Š8©/$§Î &^ôúÎýÎÆÇÈ Æ¤/ Çššžœ Àž¹ ŸÌ šd…ó¹Â†ýÈ€1ˆ ψ
8©/$‚Ï á^|ÃÏ,ÆÏÉ É¤/€1ˆ Ìψ
Œ8©/$ÍÏü¤×(ü‡Õ&# Sets the global maximum log level.Á®Õúü²ÕOL Generally, this should only be called by the active logging implementation.Á‚Öúü†Öqn Note that `Trace` is the maximum level, because it provides the maximum amount of detail in the emitted logs.Áóµ ̈×ü‚×!l«×Ž&€1
 ™`üñÝ4ü•Ø1. A thread-unsafe version of [`set_max_level`].ÁÇØúüËØLI This function is available on all platforms, even those that do not haveÁü˜Ù<9 support for atomics that is needed by [`set_max_level`].ÁÕÙúüÙÙ?< In almost all cases, [`set_max_level`] should be preferred.Á™ÚúdÚ # SafetyÁªÚúü®ÚIF This function is only safe to call when it cannot race with any otherÁüøÚ52 calls to `set_max_level` or `set_max_level_racy`.Á®Ûúü²ÛMJ This can be upheld by (for example
 `£c“A `àB¤GS
Ìë@ ¡Œ
$¢Œ×¨Œü”%ù/˜Åc˜üÀ6ÃÍÎÏ Íù/ Πc cˆ¢cµ
 `£c“A `àB¤GS
Ïë@ Ç
˜×Îü#üœ’&# Returns a reference to the logger.ÁÃ’úüÇ’EB If a logger has not been set, a no-op implementation is returned.Á4”“ø©
¬Ì—Ó—ø.€¬—™ü\Y WARNING: this is not part of the crate's public API and is subject to change at any timeÁ4Ž™lŸ™©«­»½ÁÃðñîp®œÊ4 žô,‰ËŸ§
~ ÁD•­¡žš¢µjL¶äÈ£¦Ð•½¤ëž¦¹ \ö«§Ô¨¨Œbâ,yÓÕÂı³¡£’œ¬ƒ¤ÅrãbdSUDF„¬»º„™Üµ
ªªç0¹”仺„ÑÜÈ
¬¬ç0ó4‡®Œ¹Ã®
¯®¯µ™ü¹h®µ™µ™°°°ÇüÕF½™Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ 
 
‚á®®
°½™
üÆ/
²²Þ0³°³ËüŠ7DÞ0Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÞ0±±
³
±f¼à
µµ€1¶°åüŒ7D€1‡â´´

g̼¹º¹¸ºüÜ.ÐÑÒ Ð1 Ñ­­Á¯ °ê¢zì|" Ò· ç·
¸ ô»¾ÓÔÕ Ó1 Ôššžœ Àž¹ ŸÌ šd…ó¹Â†ýÕ€1· ·
¹ |„ ,‡ Ö Ö1€1· ·