a ]i@sddlZddlZddlZddlZddlZddlZddlmZddlZddl Z ddl Z zddl m Z Wnddl m Z Yn0dgZ daiZe ZGdddeZddZdd Zd d Zd dZGd ddeZeejejeeeejdS)N)StringIOgetc@seZdZddZdS) LogHandlercCs||_||_dSN)handlerstream)selfrrr ./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 SystemRandomstringZ ascii_lettersdigitsrangechoice)lengthrcharsresir r r _random_strings   rcCsttdD]}td}|tvrq8qWddSt}t|}||td}| |t |t ||}|t|<t d||WdS1s0YdS)N z%%(levelname)-8s %(name)s: %(message)szAdded log handler %s.)log_handlers_lockrr log_handlersrlogging StreamHandlersetLevel Formatter setFormatter root_logger addHandlerrdebug)Z log_levelrtokenrr formatter log_handlerr r r log_capture_start$s$      r*c Cstvz t|}Wn ty2YWddS0|j}|jt|jt|=t d||WdS1s0YdS)NzRemoved log handler %s.) rrKeyErrorrgetvaluecloser$ removeHandlerrr&)r'r)Zcontentr r r log_capture_finish8s     r/cCs|tdurtdatj}|jd}|dkr6d}tS|drp|dd\}}t |}| | d|SdsxJdS) NZtunedr __main__ztuned..ZNOTSETF) r$rZ getLoggerinspectZ currentframef_backf_locals startswithsplitZgetChildremove_all_handlersr!)Zcalling_modulenamerootchildZ child_loggerr r r rEs      csxeZdZdZedZdZdZfddZ ddZ dd Z e j e je jfd d Zd d ZeddZeddZZS) TunedLoggerz!Custom TuneD daemon logger class.z1%(asctime)s %(levelname)-8s %(name)s: %(message)sNcs.tt|j|i||tj|dSr)superr<r r!rINFOswitch_to_console)rargskwargs __class__r r r ^s zTunedLogger.__init__cOs |jtj|g|Ri|dSr)logconstsLOG_LEVEL_CONSOLE)rmsgr@rAr r r consolecszTunedLogger.consolecCs ||||jdSr)_setup_console_handlerr8r%_console_handler)rr r r r?fszTunedLogger.switch_to_consolecCs&|||||||jdSr)_setup_file_handlerr8r% _file_handler)rfilenamemaxBytes backupCountr r r switch_to_filekszTunedLogger.switch_to_filecCs|j}|D]}||q dSr)handlersr.)rZ _handlersrr r r r8rszTunedLogger.remove_all_handlerscCs*|jdurdSt|_|j|jdSr)rJrr r# _formatter)clsr r r rIws  z"TunedLogger._setup_console_handlercCsj|jdurdStj|}|dkr&d}tj|ss4  6