Files
boc/aamos-ledger-rust/target/debug/deps/liblog-fe03740d56b0bbef.rmeta
T

467 lines
191 KiB
Plaintext
Raw Normal View History

rust
¸û#rustc 1.96.0 (ac68faa20 2026-05-25)ÁÀ뉊]!ÜÛê(¹Þ—šên-5be7b69c3ff7b5b8ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁòÖÀH•‘PIÓHã#£-055f30b747f859b6Árustc_std_workspace_coreÁ­Cçß^ò½èÝ$­Çÿ+Cé-c4878ee60b2242c9ÁŸÃï+Ñ]ŠqB<ÏïW#-8dd1dd90e70d0b6aÁ miniz_oxideÁ€š»J(P>àö÷g\K-1eb618da2918ab7fÁadler2ÁÆ;+Þ®5¥Ìýݰ¦ÛLˆ-f7919172d268e069Á hashbrownÁPäV9ÒÆèÜ"ÊÖVŽ\-0fc2184a5da6723aÁrustc_std_workspace_allocÁs&ØòØy¯s•bæ!‰ýŠ-97e4bf30be240674Á
std_detectÁhŠBîÙºÌI®ËÅš-9dbbf8346ba7ac8bÁrustc_demangleÁûë9´Ç×@Œ’ùXFº-f33013f239bf9f14Ácfg_ifÁÜLhž§Œaã¯>­-0a71c8f33a838301Á addr2lineÁ׎Þ!]8V$É@@-e618e6be60e87ba2ÁgimliÁ¸
°µ~Î1‹Ñt ðÁ€w-1f7768a68858f670ÁobjectÁ
áPÃ?­À¶¼QHJ¥-914cd6a4dbe590d1ÁmemchrÁ›º«8Ór­2Ù $¨ûib-cf21ca6f2bb15dcdÁë
‹ás«LÖ€îâƒ×ɯŒ-ee6f3747e38367f0ÁÀ…|»À|Ñ{ŒÐ{
__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¹í©
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Àbb¤bêb¹ bÂbÌbæbšbbuildÁo>q«qq¤qêv«væ v¤vêvÐ|>LogÁ~enabledÁ~logÁ~flushÁ NopLoggerÁ
ÁÏÙˆ¥ˆÁˆÏˆÙ¥ÁÏÙ¥ÁÏÙ
set_max_levelÁset_max_level_racyÁ max_levelÁset_boxed_loggerÁš 
set_loggerÁœ set_logger_innerÁžset_logger_racyÁ¡×¤×loggerÁ§NOPÁ
__private_apiÁ©©©©©©©©©© ©
© © ©KeyÁ·«©ValueÁ¹«©sealedÁ»KVsÁ¼«¼into_kvsÁ©¿«¿ý©Â«Âý©ÅÁÅÏÅÙ©log_implÁÉ©Ï˫˜˩ÁÏ©locÁSTATIC_MAX_LEVELÁ
Ï
errorÁ
Õ
infoÁ

traceÁLevelÁÙErrorÁÚ
Ú ÙWarnÁÝ
ÙInfoÁß
Ùpá
ÙTraceÁã
æƒ !"ê#ìÖ$îï
%ð&ò×'ô§õù LevelFilterÁ÷OffÁø
÷ú
֟
÷ªþ
÷p
ւ
()ƒ*+,-Ö.ï
/0×1§ùMaybeStaticStrÁ«StaticÁ˜
˜ˆBorrowedÁ
ˆ2ž«3 «4¢«¢ƒ5¥«¥×RecordÁ¨«¨¨À¨¹ ¨Ì¨š6¯«¯ƒ7²«²×
RecordBuilderÁµ«µrecordÁ8¸«¸×MetadataÁ»«»¤»ê9¿«¿ƒ:«ÂÖ;Å«<Ç«Ç=Ê«Ê>Í«Íï
?ЫЧÒù@Ô«Ô×MetadataBuilderÁ׫×AÚ«ÚÖBÝ«Cß«ßDâ«âEå«åï
Fè«è§êùGì«ì×SetLoggerErrorÁï
ïˆHò×ParseLevelErrorÁô
ôˆI÷×JKúLüÖ© 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ãäÇÄ*TwÔ=婨þ+Š þ+Ðìþ+µßþ+þ+þ+íßþ+þ+ºþ+¿cþ+šeþ+µßþ+÷øùÓúûüýþÿªpƒÇ…A€Šø«`íßþ+Õ-ïyþ+Äcþ+ÛÕ-ØÕ-Š Õ-ÐìÕ-µßÕ-Õ-Õ-íßÕ-Õ-ºÕ-¿cÕ-šeÕ-µßÕ-þ+íßÕ-þ+ïyÕ-ÄcÕ-Š ˜¨šˆœÃˆò‹©pï«Û’0Ø’0¿c’0˜¨šˆœÃˆò‹©pï8µß‰1‰1º‰1í߉1‰1še‰1ب¨Ÿª«À¬¹ ­Ì®š†¥ú3gϵ†«¿c‘2¿cµµ·¡ŒŒ/D($«³µµ·¡ŒŒ/D($8Ø»»Â½¤¾êìªØ‚Mle«ô3Ðìô3µßô3ô3ºô3íßô3ô3šeô3¿cô3×׉!Ù‡‰Pô‚ †ø«Ðìˆ5µßˆ5ˆ5ºˆ5í߈5ˆ5šeˆ5¿cˆ5³×׉!Ù‡‰Pô‚ †ø8~ƒå Sq¢ôSv~ 8¥~žBoxÁ¡ˆˆ¢ˆl }.xÏ¥çEçEèEGlobalÁ ¿±‡§í#~†J†JK‰Jµ 7ŠJphantomÁ7J¤7·0ØQdè¾7Ä7¿cïïð»"ñˆ PæÊäG^¨ñÄcÏ8¾Ï8¿côôõé"öˆ 9×ÇSËÐì›9µß›9›9›9Äc›9¾›9¼ «
 «“:«¼«¿cþþÿµ# þKÁÿmÑ7V~¼:åÙ÷ æÙ÷¢¯¨¿»èÙ÷žéÙˆ÷Å»Ý×ùôêÙ!Ù÷4÷KÇ»ß×úôìÙ÷J»Ú×üôîÙ#Ù÷6÷OÍ»å×ðÙ÷MÊ»â×òÙ÷¥²¨¸µÔ»ì×òï÷ôþôÙ÷Qлè×%Ù8÷(Ù;÷¡ï¤ôoµ|׈
†JÅþ£ï¦ô¿
Â
ÛñØŠ #Ðìµß#5íß)º.¿c
"šeFïy"Äc ³~ ¾!¼¼?¼?¼?¼?(‰ŽŽŽç$þ+/ þ+9BLH–ŽŸŽë=BHSÊ@ZÊ@a¼?h¼?ox¹
 __self_discrÁž __arg1_discrÁµ½£Ží¡Ž¬:Ê@)P¥Ž&49
ïß¼?¼?NS[¯Žïsx~Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¿ßÀßÁßLessÁÂßÃßÄß~Å߯ßÇßGreaterÁÈßåºÝÈnûê7/Ê@7Ê@?¼?G¼?O ¼?ZÞEbl¹
z‚Aˆ™AÈC§±Ž&49
»¼?JOW´ŽñotzÖDÊ@Ê@¼?¼?¢ÞE©ÞE°¹¹
Æ‚AÓ™AÞæûFï (¶Ž)/7 ºŽPXõHksõH:ŽõHU¡©õHp¾Ã
êcÔÙỎóùÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¬:ŸÈŸÈ È éBL{Ê@ƒ  c cˆ¢cµ
 `£cbufÁ `àB¤GS
ÊõHÒ¼?Úä±òý€J ½Ž"
›e¼?ù9>FÁŽõ^c¬:oÊ@v úL¼?ÞEŽº¤‚A±¹ñLÂ,³•t³•4Å•|Å•ü³•!Ú•"üÿ”[$¤•Ê@,…• Õ-,Œ•þ+Œ¼?Õ-~¼?5¹
5d,í–„ì–
4ƒ—
Œ‚— 

  üì–(ý–ûFs-¼ý–üç–. Û¼ÖD›—$ü™– ‘D¬Ç–Ê@,¨–“O,¯–ÖDÞEê¼?ñþ+¼?ÞE½¼?ÜÕ-ò¼?ùW¹
ZˆûFêd¾ž ÙО,üžž2þ+,®ž,ñŸtñŸüÙŸ'¼ÙŸ
>(!üÙŸ04 
±TÕ-DD  -ü¢ŸmÕ-\ßÊ@,¹ŸÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÕ-Íþ+ò¼?ùfÄS÷ëS՜ȥ„È¥
+ Ù¥#äÈ¥4Ü¥
±Tþ+EDÜ¥ä¥1üÄ¥ þ+Ç¥ 1¼?þ+¬:1¼? Å¥Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙþ+í´YÌU
õUç(¡´¦´$Õ-/“O6?IH®´·´Š=BHS“OZ“Oa¼?h¼?ox¹
‚A™A¥»´Œ¹´¬:“O)P½´&49ÈCDIQÇ´Žint‘D“O“O޼?¼?œÞE£ÞEª³¹
À‚AÍ™AØàÈCéÉ´&49ûFDIQÌ´intÖD“O“O޼?¼?œÞE£ÞEª³¹
À‚AÍ™AØàûFé
(δ+19õHÒ´PXõHksõH:ŽõHU¡©õHp¼ÄõHÙÞ€Jêï ÷Ó´¸J“O#¿K+õH3¼?;E±S^€Jh Õ´"ñL-2: Ù´RW¬:c“OjÄMq¼?xÞEˆº‚A¢ªñL³t«¸±¸
·ßþ+Õ-,«¸$´¸D±¸¿¸5üý·B$œ¸“O,ƒ¸Ê@,Џ¹
EÛbš,̹„˹
4â¹
Œá¹ 

 ”๠ü˹(ܹûFs-¼Ü¹üƹ. Û¼ÖDú¹7üþ¸| ‘D¬¦¹“O,¹Ê@,”¹ÖDÞEé¼?ðÕ-¼?ÞE¼¼?Ûþ+ñ¼?øW¹
ZûF锕 ÷­Â?üïÁ>Õ-\ÿÁ,øÃtøÃüæÃ!ŒæÃÌU&Ä@ü´ÃYáVlÎÓO,ÄÃÕ-v¼?}=ÌU{œÛÉ„ÛÉÄS ìÉ!äÛÉ4ïÉëS=DïÉ÷ÉDü×É Õ-ÚÉ D¿VÅVÕ-¬:/¼? ØÉ¸Tž´TÄS»ëS("à×"åפ$)/˜¨šˆœÃˆò‹©pï Æj£(#ç×#8#°ØÃõHD LõH- 9
 ¿c~ƒ
‡d 
u¦`#”بõHÅÍõH-9¯lõúÉl h#ì×§39@ ¸JM˜kU¿K]e õHÆõHw¯lÕ ªnߪngõH˜¯lwÃn²±À__self_0Á,Œn¹ëÃn¯lÎÉlýÃn¯l[Él ,–Ù\Ù% ïÙÃõH õÙ ÁÙ¨õH ÇÙüÙq‡ÚIüíØšôªÙüÖÙ õH<þؘk,ôØõHX¢n̪ÙõHõHÐ+¾¾ñxT»ÞÀÞ
I$»Þ,ÀÞ´»Þ$ÆÞ
›eO,ËÞ\ÆÞØÞRüýÝ[¬:°Þ˜k,›Þ Òr,¢Þ¬:zõH¯'º'WœrØÊr¯°$±ê»»Â½¤¾êìªØ‚MleNS
Ù†tdlÀ$ÍêäÈäÈ ArgumentsÁæÈtemplateÁ `çÈÀ `üöMõô]Tdej
Ùöt{ƒø$ëê'Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÆj]b
Ùþus{ø$˜ë þuÒv (0ˆ$¾ë Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ\a
Ù°w r
z($†ê ¨
$‹ê±: ¨¨Ÿª«À¬¹ ­Ì®š†¥ú3gϵ† Þx§†tÖ †táöty ötþu þuþuõy¡°wu °w ÌtIÓußÒv^Òvå„x·(%ê õH°%±ê  õH†t'¯lÀ%Íê 
õH öt' ¯lø%ëê'

 õH þu(  ¯lø%˜ë

 õHþu(¯lˆ%¾ë 
õH°w'3¯l9?
d QWGM"
ñ ö
ÃÈš%’ê´¯¸J»½yÿKËõHÓõHůlÍÏyÕõH¦¯l®âyõH¯lõyõHg¯loõywõHG¯lO ˜zZ˜zb`±nyÏy¯loây¯l@õy¯lõy¯lᩯl±§}«¤ÿð”ÿð
d™ñVüÏðJµµ·¡ŒŒ/D($ŒãðE«€ƒTûñöt‹òWüÇñDâyœÝñ½y,Óñ /tûò†tóXüÉòFÏylãò½y,Ùò /löó†t¬öó,„ô
t0<„ô‘ôYüÏóBþ+,æó½y,ÜóÏyt6–ƒ{l€õ†t´€õ4Žõ
u0DŽõœõZüÖôFõH<îô½y,äôÏyt6²„{öþuüö! ö
·TÆjõH\ÆjõH¬:OÚ…\¤ö„ ö¶ö[üØõ^Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙõH|õõ½y,ëõþuå{Î…í ¨ö<¨öªöœr',ªö¯ö\üõH§öÚ…Æj ¥ö˜kp¾8œr}„Ø÷þu´Ò÷$´ø Û¼õHHþuÛÆjO “øþuÛÆj¨õH<šø Û¼õH  øÉøü÷º]ü÷÷*±†¤³÷½y,©÷¢nÌü÷¢nü÷÷õH¬(¾ÂoL½ùþuÔ½ùÇù
·TÆjõH_ä…¬:EèË‹\Ëù„ÇùÝù^üùP±†|£ù½y,™ùþu7¿‹¡ Ïù<ÏùÑùœr',ÑùÖù_¸õHÎùË‹ÎÆj Ìù˜ko¾óœr{L€ûþu|úú$Õû Û¼õHHþuÛÆjO ´ûþuÛÆj¨õH<»û Û¼õH Áûêûü¾ú¬`ü˜û*±†¤Ûú½y,Ñú¢nÌû¢nü˜ûõH¬(¾ÂoLÓü°wâüaü§ü;°w\½ü½y,³ü /(&­ 
õH õHÞx'3¯l[`
ùcqvejˆº ¸J« Ú€¿K½õHÄõHµ¯l¼ ½yƽyÍì±ù÷’¯lú‡’€'Á’€eÁ’
¶cÎ’õH 0œí’Œí’
s"Üí’,
{J<$§“ Û¼Æj$Ó Û¼Æj$ß“ Û¼õwü¢’½ ¨üþ‘ì µð”düÒ‘ž Ú€Œâ‘ÞxoötM†tï ×׉!Ù‡‰Pô‚ †øU –^þu
þuý°wìØ“¼Œ”»”d¼Þxöt$°–º–eüº• Ú€´î•ß—LÆ•öt$Ñ•ÀLü¸˜Þx†t$á˜ë˜füá—Šß—´—˜ß—Lñ—†tDü—Iüš"Þx†tþ+$¹šÚgüÙß—´ì™ß—LЙþ+,Û™¤Iüê›$Þx†tõH$˜œ¢œhüœ›ß—´É›ß—Lª›õH4µ›êIüì"ñ
·TõHÆj
œÄõ„œ ìñüÒ<Þxþu$˜ž¢žiüùœ©ß—´±ß—±†$—þu±õ
 Qø›ÛüŽ  “ 
·TõHÆj
$Ž ´— ì Ü“ üôŸ:Þxþu$¸  jüŸ³ß—´ÓŸß—L©Ÿ±†$´Ÿþu±õ
 QàÛüð¡"õ¡ø›$ð¡Äù¡„œ ìõ¡üÝ¡5Þxþu$œ¢¦¢kü‹¡ß—´¼¡ß—L—¡±†$¢¡þu¡Ì Qø›Ëü÷£ ü£à$÷£´€¤ì Üü£üä£3Þxþu$¡¤«¤lü†£¥ß—´Ã£ß—L™£±†$¤£þu¡Ì Qà˼¥Þx°w$ã¥í¥müô¤yß—´¡¥ß—L€¥°w$‹¥šH\ã¨Þxœã¨,ï¨
ÙÞx2<ï¨ü¨nü·¨EÞxTΨÐ’,Ĩ½yw7™¤~`(×±þ+
Ùþ+-5x(é±õH((„± »(‰±Á1†t<ÏyCþ+¤Ê@«õHyªnhr³¥Ö
ÙõH¨)±Ä)‹± ¬:Ïy"+5`*×±þ+þ+(-
·ßþ+þ+BGOUx*é±õHõH(-
·ßõHõHBGOS[g*˜±ÉH*±ÏyÏyÊ@Ê@ªn¼ªnÃJ¹
Waˆ¨Pë¨ô`+×±þ+þ+(-
»þ+>CKO[i+â±x+é±õHõH(-
»õH>CK+±Ì+š±í ÖDÏyÏy#ÖDÊ@Ê@&ªn­ªn´Z¹
gX}êªkë«ñ`,×±þ+þ+(-
ïßþ+þ+BGOS_o,â±ÛÖDx,é±õH õH(-
ïßõHõHB GO,©±P,Ÿ±Ï#
D$Ïy+Ïy2DEÊ@MÊ@U]¢neªnªnÉq¹
~ç­ª’¯`-×±þ+
›eþ+ù3 -«±Dx-é±õH
›eõHœ±1F>-¯±Òf¬:qÏyx œ±ƒ¬:ÂÊ@ɪnˆ¡º®¸“±úÛ±¸(.±± õH`.×± õHþ+'¯lx.é± õH
õH' 
3 ¯l
ûc¨­œ¡otÉ.¶±Öá ¸JìÏyó¿KúõHõHó¯lúÊ@õHÒ¯lÙÃnàªnç=±KVÊ@¯lLÃn¯lš´q´ø²¤ø²
x”³süƲN –œÚ²XTû³þ+‹´tüÔ³7þ+,ë³Ïy,á³ /\ú´õH‹µuüд;õH<è´Ïy,Þ´ //ŹÜ/ù ¬:ž–&0°0–º†t†t(-
·ß†t†tBGO0йáH0ǹž–ž–ÏyŒÏy5¹
BLª¹½°1–º†t†t(-
»†t>CK1Õ¹ä1Ò¹ÖDž–ž–ÏyÏy6¹
CMòºº°2–º†t†t(-
ï߆t†tBGO2á¹çP2×¹‘Dž–ž–ÏyÏy6¹
CM·¼¾°3–º†t
›e†tœ±1 3ã¹B3ç¹ê$¬:/ž–7¦²?Ïy|Oº\fヲ(4é¹ õH°4–º  õH†t'3¯l[`‡’mraf4î¹îœ¸J§ž–¯¿KõH½õH®¯lµ Ïy¿ÏyÆå±òüÎÀ¯lò‡’\ð¼ Ù•½ õHüμX »ü¦¼ ×·½xüø»¿ –œˆ¼†teþ+õHˆ0ÌÖ¾†tþ+$ù¾ƒ¿yüŒ¾w  –ij¾ŽÃL™¾þ+¤¾argÁNìªÀ†tõH$ÑÀÛÀzüÚ¿ŽÃćÀŽÃLè¿õH4ó¿êIlÂÁ†t¬ÂÁ,ÐÁÌt,<ÐÁÝÁ{ü”ÁI†td«Áž–,¡ÁÏyq7ÌtwDÔÎÔÔÎ<ÝÎ
ð6,DåÎŒÝÎôΊü›ÎY$ÅÎ  ð6,¦ÎÏyD­ÎóÆ!S§Æ¢D£Ï¤£Ï¬Ï
ð6-4°Ï\¬Ï¾ÏüúÎD¬:˜ÏñÆ,Ͻy4ˆÏ¬:tóÆ%¡(VåǦDÝÏ„ÝÏ,æÏ
ð6-<æÏôÏŒüÃÏ1¬:ÒÏñÆ,ÌϬ:bóÆ?§ÉlÑ4’Ñ
âý6¾7$ÑD’ÑüÑ<›Ñ
¾7OD£ÑŒ›Ñ²ÑüÔÐ^$þÐ ý6,ßÐÏyDæÐ ¾7« #R»ÊÕïʨláÑ4æÑ»Ê$áÑDæÑÌáÑïÑ
¾7G4óÑ\ïÑÒü¸ÑI¬:ÖѹË,¿Ñ½y4ÆÑ¬:tÐ˧%¡(V»ÊÑÎ̬l Ò4¥Ò»Ê$ ÒD¥Ò¬ Ò,®Ò
¾7G<®Ò¼Òü†Ò6¬:•Ò¹Ë,Ò¬:bÐË?»Ê²²ÎlÔÓ4ÙÓ
âö7¾7$ÔÓDÙÓüÔÓ<âÓïÊKDêÓŒâÓùÓü›Ó^$ÅÓ ö7,¦ÓÏyD­ÓÐË¥!PÌÏÏïÊ¢l¨Ô4­ÔÌÏ$¨ÔD­Ǫ̂Ô¶ÔÎÌB4ºÔ\¶ÔÈÔüÿÓI¬:ÔÆÐ,†Ô½y4Ô¬:oÐË¢%¡(VÌÏÌÎ̧lçÔ4ìÔÌÏ$çÔDìÔ¬çÔ,õÔ²ÎB<õÔƒÕüÍÔ6¬:ÜÔÆÐ,ÖÔ¬:]ÐË?ÌÏ­²Îˆ¤Ó×  ¤]¤]V¦]Á‚]üß3ø¤”&¼?tî׌þ× ¼ÀüÓ×=,è×
—ĈD<üè×(“Øü¤×o¬:Ì×Õ-,¹×¬:kÑÔà¼?,î×¼À½À¾ÀË¿ÀÀÀÌÁÀÂÀGÃÀÄÀFÅÀÆÀ×`šÁ¬S øB¤š½¹Õ¤žà ÑÔt¹àŒÉà ¼Àüžà=,³à¹ÕVA9ü³à(Þà˜üñÝí¬:¥ÞÕ-,’Þ¬:iÑÔ¯¼?,¹à©Öš¤.R¹Õ¡¤Ñè ÑÔŒëè ¼ÀüÑè,$æè
–ÄL7¼æèüÂè<   ,ÿÿÿÿÿÿÿÿH` Õ-‚é{ 
üñäÕ-\‡å¼?ãÑÔ©Ö ÍÔÛHïÙ(>Ç‹ õH>鋬:!¯lINÉlZ_Nl>Ì‹ó¸J Ï8¿K õH§¯l˜  ¬:¥¹Ý­Ì±Ùã·Ý¯lÙÉlô(?Ü õH¬:!¯lINÉlZ_Nlø¸J ›9¿K õH§¯l˜·Ý ¹Ý¨Ç±Ô޷ݯlÔÉlï¬:¬:(-
·ß¬:¬:BGOûH@ã—ߗ߹ݹÝ7¹
DN°à¿ý ¬:—ß&0 Û¼ 
õHõHÜÁüŠRÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¬âüŸ"¬â$– t Û¼¬âØÄüŒLÚâü¡"¬:$˜ +/¬:4(Bš  õH€J(-5L¸JW ¼:a¿KhõHox±€J˜
õH
õHÓ
 •½•½LocationÁ—½filenameÁ¯V˜½š¯V™½colÁ¯Vš½ _filenameÁ¯VirBð¸tý–Ð 
  
£T¬â
+  , ùGž"#ùjž"#Ø“üï NLõH /ùF@#áF#
ÜW Q $ŒÜ  
V
 
Üô $…

e)
T…
üô 1,™

gI
d™
üô I

hJ

ŒÚ
 Û¼õHüô x”Ç

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

l; ìö

ËV§ „¢ Û¼õwüô ¿$
m;
´<€
|€,ˆ
n(<ˆ„ÿäôû
r2¬û üí ¦Éü§ ìüÊ É¬:¦ ší4†
öt$•
þ+
 õHõH•æܼ
Úâ õHuõHk•æbÑ Úâísöt°Ú€ ß—šß—ß—˜ß—ìß—&ß—_ß—y±†á±†tõH¦°wõw@¬: šíà½y£ÞxÒÐ’ëÆÀ¤ kvsÁꎹ ˆœ
¹¬ç
ؓբè§ÈèùèYªé0Ûé¦êÂÕêëZËë1“ìòÝì­”í}šíQšíX
&
¾œÄüáx 
É,‘Ô |U Ø
Ûü•Æ,<Ë2 ¬:¸©óötþ+·îÔåäò¯©óSÚâ)§ÆJÀN¤Rtarget_module_path_and_locÁoÝïsêÞò£ót©ó" œ¹Œ¹Œ” 
 ü¹ 
y
F ü¹/
z J/ü¹7»”Tü¸8ü©H
šíý1ü°A òóüÝÏ šíþ+,ÿõH4ŠðÏy¸†täž–*ŽÃ3ŽÃmŽÃ£ –¬Æb¤fêj¬Œ”åÓö¿„÷»”^ø÷/šíší °HÙœ
øOÇ    øIÿœ' „ª ÷'øJÉ) ”ö ÷'øK—ž( K¾žŒÃž ÷'øLãž( 
LŠŸŒŸ ÷'øM¯Ÿ)  Mן”ÜŸ ÷'øNýŸ) 
N¥ ”ª  ÷',ôŸOå  „ê  ÷' øP…¡!


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


Sç¢
”ì¢ ÷'
”‰£ ÷ £ü©œöÒÕ-\Åœe oÊw$Ñ~tù¦S4Ø (Æj3õH:AD§Ø œ(Æj3õH:AÌÏ‹ ïð&Ï81¬:8?Ôó ôõ&91¬:8?
 ~‚ƒ˜šœž §©ÒÙ»¨÷µ×ïðôõÀâ”|¬Ä,º|ÄÔ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-
 ~‚ƒ˜šœž §©ÒÙ»¨÷µ×ïðôõÀD<âE<¬ÄD<ÄV<Ô¿†><ïy=<×<<¤,í;<ë Û :< ç 9< ù 8<
 7<à6<5<¢3<Ñ1< /< 
-<„Ä®,<¼ÀÏ+<ÓÕ*<Õ×)<Ö(<×é'<ؾ=Á=Ä=D|»=Tµ|®=ŒÅ|=Ü|=„=t=w=g=j=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
'üÞ•&þ+$ïß$ü™–C\œ– þ+ Õ-‘D# ¨–#
$$©–¹
O(´Ÿ—þ+&'ðyñy'D¼—Á—%%›9üÜ—4Dß— Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
þ+þ+ðy% ï—%
'¤,è—ܬšþ+)Åc)üΚ6Ñšˆ þ+ ˆ c cˆ¢cµ