a ”ˆ«hûã@sddlZddlZddlZddlZddlZddlZddlmZddlZddl Z ddl Z zddl m Z Wnddl m Z Yn0dgZ daiZe  ¡ZGdd„deƒZdd„Zdd „Zd d „Zd d„ZGd d„de ¡ƒZe ejej¡e e¡e ej¡dS)éN)ÚStringIOÚgetc@seZdZdd„ZdS)Ú LogHandlercCs||_||_dS©N)ÚhandlerÚstream)Úselfrr©r ú./usr/lib/python3.9/site-packages/tuned/logs.pyÚ__init__szLogHandler.__init__N)Ú__name__Ú __module__Ú __qualname__r r r r r rsrcCs8t ¡}tjtj}d}t|ƒD]}|| |¡7}q |S)NÚ)ÚrandomZ SystemRandomÚstringÚ ascii_lettersÚdigitsÚrangeÚchoice)ÚlengthÚrÚcharsÚresÚir r r Ú_random_strings   rcCs¶tžtdƒD]}tdƒ}|tvrq8qWdƒdStƒ}t |¡}| |¡t d¡}|  |¡t   |¡t ||ƒ}|t|<t   d|¡|WdƒS1s¨0YdS)Né éz%%(levelname)-8s %(name)s: %(message)szAdded log handler %s.)Úlog_handlers_lockrrÚ log_handlersrÚloggingÚ StreamHandlerÚsetLevelÚ FormatterÚ setFormatterÚ root_loggerÚ addHandlerrÚdebug)Z log_levelrÚtokenrrÚ formatterÚ log_handlerr r r Úlog_capture_start$s$   ÿ   r+c CsŽtvz t|}Wn ty2YWdƒdS0|j ¡}|j ¡t |j¡t|=t  d|¡|WdƒS1s€0YdS)NzRemoved log handler %s.) rrÚKeyErrorrÚgetvalueÚcloser%Ú removeHandlerrr')r(r*Zcontentr r r Úlog_capture_finish8s     r0cCs|tdurt d¡at ¡j}|jd}|dkr6d}tS| d¡rp| dd¡\}}t  |¡}|  ¡|  d¡|SdsxJ‚dS) NZtunedr Ú__main__ztuned.Ú.éZNOTSETF) r%r Z getLoggerÚinspectZ currentframeÚf_backÚf_localsÚ startswithÚsplitZgetChildÚremove_all_handlersr")Zcalling_moduleÚnameÚrootÚchildZ child_loggerr r r rEs      csxeZdZdZe d¡ZdZdZ‡fdd„Z dd„Z dd „Z e j e je jfd d „Zd d „Zedd„ƒZedd„ƒZ‡ZS)Ú TunedLoggerz!Custom TuneD daemon logger class.z1%(asctime)s %(levelname)-8s %(name)s: %(message)sNcs.tt|ƒj|i|¤Ž| tj¡| ¡dSr)Úsuperr=r r"r ÚINFOÚswitch_to_console)rÚargsÚkwargs©Ú __class__r r r ^s zTunedLogger.__init__cOs |jtj|g|¢Ri|¤ŽdSr)ÚlogÚconstsÚLOG_LEVEL_CONSOLE)rÚmsgrArBr r r ÚconsolecszTunedLogger.consolecCs | ¡| ¡| |j¡dSr)Ú_setup_console_handlerr9r&Ú_console_handler)rr r r r@fszTunedLogger.switch_to_consolecCs&| |||¡| ¡| |j¡dSr)Ú_setup_file_handlerr9r&Ú _file_handler)rÚfilenameÚmaxBytesÚ backupCountr r r Úswitch_to_filekszTunedLogger.switch_to_filecCs|j}|D]}| |¡q dSr)Úhandlersr/)rZ _handlersrr r r r9rszTunedLogger.remove_all_handlerscCs*|jdurdSt ¡|_|j |j¡dSr)rKr r!r$Ú _formatter)Úclsr r r rJws  z"TunedLogger._setup_console_handlercCsj|jdurdStj |¡}|dkr&d}tj |¡ss4  6