+
    ܌i                     N   ^ RI Ht ^ RIHt ^ RIHt ^ RIHt R R ltR R lt	]P                  ! 4        ]P                  ! ]R	]R
7       ]	! RR4      t]	! RR4      t]	! RR4      t]	! RR4      t]	! RR4      t]	! RR4      t]	! RR4      t]	! RR4      t]	! RR4      t]	! RR4      tR# )     )Path)stdout)logger)BASE_DIRc                0    V ^8  d   QhR\         R\        /# )   recordreturn)dictstr)formats   "G/data/.openclaw/workspace/MediaPublishPlatform/sau_backend/utils/log.py__annotate__r      s     S S$ S3 S    c                v    RRRRRRRRR	R
RR/pVP                  V R,          P                  R4      pRV RV R2# )zl
Formatter for log records.
:param dict record: Log object containing log metadata & message.
:returns: str
TRACEz#cfe2f3INFOz#9cbfddDEBUGz#8598eaWARNINGz#dcad5aSUCCESSz#3dd08dERRORz#ae2c2clevelz#b3cfe7z:<fg #70acde>{time:YYYY-MM-DD HH:mm:ss}</fg #70acde> | <fg z>{level}</fg z(>: <light-white>{message}</light-white>
)getname)r	   colorscolors   &  r   log_formatterr      sh     		99F JJvg++Y7EI%P_`e_f  gR  S  Sr   c                0    V ^8  d   QhR\         R\         /# )r   log_name	file_path)r   )r   s   "r   r   r      s     / /C /C /r   c           
        a  V 3R lp\        \        V,          4      P                  P                  RR7       \        P
                  ! \        \        V,          4      VRRRRRR7       \        P                  ! S R7      # )	z
Create custom logger for different business modules.
:param str log_name: name of log
:param str file_path: Optional path to log file
:returns: Configured logger
c                 :   < V R ,          P                  R4      S8H  # )extrabusiness_name)r   )r	   r   s   &r   filter_record$create_logger.<locals>.filter_record!   s    g""?3x??r   T)exist_okr   z10 MBz10 days)filterr   rotation	retention	backtracediagnose)r$   )r   r   parentmkdirr   addbind)r   r    r%   s   f& r   create_loggerr1      sl    @ 	I	%%++T+:
JJtHy()-vX_kt  AE  PT  U;;X..r   T)colorizer   douyinzlogs/douyin.logtencentzlogs/tencent.logxhszlogs/xhs.logtiktokzlogs/tiktok.logbilibilizlogs/bilibili.logkuaishouzlogs/kuaishou.log	baijiahaozlogs/baijiahao.logxiaohongshuzlogs/xiaohongshu.log	instagramzlogs/instagram.logfacebookzlogs/facebook.logN)pathlibr   sysr   logurur   confr   r   r1   remover/   douyin_loggertencent_logger
xhs_loggertiktok_loggerbilibili_loggerkuaishou_loggerbaijiahao_loggerxiaohongshu_loggerinstagram_loggerfacebook_logger r   r   <module>rM      s       S$/   

6D 7h(9:y*<=5.1
h(9:
,?@
,?@ .BC "=2HI  .BC 
,?@r   