a ©!cr(ã@sØddlmZddlmZddlZddlZddlZddlZddlZ ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZdZe jZe jZe jZe jZe jZdZdZdZdZd d „ZGd d „d eƒZee je je je je je jeeeed œ Zdd„Zee je jdœZ dd„Z!dd„Z"dZ#dd„Z$Gdd„de j%j&ƒZ'dd„Z(dd„Z)Gdd„deƒZ*Gd d!„d!eƒZ+e j,j-j.ee j,j-j/ee j,j-j0ee j,j-j1ee j,j-j2ee j,j-j3ee j,j-j4eiZ5Gd"d#„d#e j,j-ƒZ6e6ƒZ7e j,j8 9e7¡dS)$é)Úabsolute_import)Úunicode_literalsNédéééécsdd„‰‡‡fdd„}|S)zGMethod decorator turning the method into noop on second or later calls.c_sdS©N©)Ú_argsÚ_kwargsr r ú//usr/lib/python3.9/site-packages/dnf/logging.pyÚnoop3szonly_once..noopcs(ˆ|g|¢Ri|¤Žt|ˆjˆƒdSr )ÚsetattrÚ__name__)ÚselfÚargsÚkwargs©Úfuncrr r Ú swan_song5szonly_once..swan_songr )rrr rr Ú only_once1src@seZdZdd„Zdd„ZdS)Ú_MaxLevelFiltercCs ||_dSr )Ú max_level)rrr r r Ú__init__;sz_MaxLevelFilter.__init__cCs|j|jkrdSdS)Nré)Zlevelnor)rÚrecordr r r Úfilter>s z_MaxLevelFilter.filterN)rÚ __module__Ú __qualname__rrr r r r r:sr) rrréréréré é cCs&d|krdksnJ‚t |t¡S©Nrr$)Ú_VERBOSE_VAL_MAPPINGÚgetÚTRACE©Z cfg_errvalr r r Ú_cfg_verbose_val2levelQsr*)rrrcCs(d|krdksnJ‚t |tj¡Sr%)Ú_ERR_VAL_MAPPINGr'ÚloggingÚWARNINGr)r r r Ú_cfg_err_val2level^sr.cCs|dS)Nz.gzr )Únamer r r Úcompression_namercsr0ic Cs€t|dƒX}t |d¡,}| t¡}|s*q6| |¡qWdƒn1sJ0YWdƒn1sh0Yt |¡dS)NÚrbÚwb)ÚopenÚgzipÚreadÚ CHUNK_SIZEÚwriteÚosÚremove)ÚsourceÚdestZsfZwfÚdatar r r Úcompression_rotatorjs  Hr=cs&eZdZd ‡fdd„ Zdd„Z‡ZS) ÚMultiprocessRotatingFileHandlerÚarNFcs.tt|ƒ ||||||¡tj dd¡|_dS)Nz /var/log/T)Úsuperr>rÚdnfÚlockZbuild_log_lockÚ rotate_lock)rÚfilenameÚmodeÚmaxBytesÚ backupCountÚencodingZdelay©Ú __class__r r rvs  ÿz(MultiprocessRotatingFileHandler.__init__c Cs´zh| |¡rV|j4t |j¡j}| ¡t |j|¡Wdƒn1sL0Ytj   ||¡WdSt j j t j jfyt d¡Yqty¬| |¡YdS0qdS)Ng{®Gáz„?)ZshouldRolloverrCr8ÚstatZ baseFilenameÚst_modeZ doRolloverÚchmodr,Z FileHandlerÚemitrAÚ exceptionsZProcessLockErrorZThreadLockErrorÚtimeÚsleepÚ ExceptionZ handleError)rrrEr r r rN{s ,  z$MultiprocessRotatingFileHandler.emit)r?rrNF)rrrrrNÚ __classcell__r r rIr r>usr>cCsltj |¡s,tj tj |¡¡tj |¡t|||d}t   dd¡}t j |_ | |¡|rht|_t|_|S)N)rFrGz%%(asctime)s %(levelname)s %(message)sz%Y-%m-%dT%H:%M:%S%z)r8ÚpathÚexistsrAÚutilZ ensure_dirÚdirnameÚtouchr>r,Z FormatterrPÚ localtimeZ converterZ setFormatterr=Zrotatorr0Znamer)ÚlogfileÚlog_sizeÚ log_rotateÚ log_compressÚhandlerÚ formatterr r r Ú_create_filehandlers  ÿ r`cCs| ttjj¡dSr )ÚlogÚINFOrAÚconstZ LOG_MARKER)Úloggerr r r Ú _paint_mark›srec@sBeZdZdd„Zedd„ƒZedd„ƒZedd„ƒZd d d „Zd S)ÚLoggingcCsPd|_|_t td¡t td¡t td¡t td¡t d¡dt_ dS)NÚDDEBUGÚSUBDEBUGr(ÚALLTF) Ústdout_handlerÚstderr_handlerr,Z addLevelNamergrhr(riZcaptureWarningsZraiseExceptions©rr r r r s      zLogging.__init__cCstt d¡}| t¡t tj¡}| t¡| t tj ƒ¡|  |¡||_ t tj ¡}| t ¡|  |¡||_dS)NrA)r,Ú getLoggerÚsetLevelr(Z StreamHandlerÚsysÚstdoutrbZ addFilterrr-Ú addHandlerrjÚstderrrk)rÚ logger_dnfrprrr r r Ú _presetup©s        zLogging._presetupc Csöt d¡}| t¡tj |tjj ¡}t ||||ƒ}| |¡|  |¡t d¡} |   |¡t d¡} |  t¡tj |tjj ¡}t ||||ƒ}|   |¡t jj  ||tk¡t d¡} d| _|  t¡tj |tjj¡}t ||||ƒ}|   |¡dS)NrAú py.warningsÚlibrepoúdnf.rpmF)r,rmrnr(r8rTÚjoinrArcZLOGr`rqZ LOG_LIBREPOÚlibdnfZrepoZ LibrepoLogriZ propagaterhZLOG_RPM) rÚ logfile_levelÚlogdirr[r\r]rsrZr^Úlogger_warningsZlogger_librepoÚ logger_rpmr r r Ú_setup_file_loggers»s(           zLogging._setup_file_loggersc Cs | ¡| |||||¡t d¡}| |j¡t d¡} |  |j¡|  |j¡t d¡} |j t¡|j t¡t | ƒt | ƒ|j |¡|j |¡dS)NrurwrA) rtr~r,rmrqrkrjrnr-re) rZ verbose_levelZ error_levelrzr{r[r\r]r|r}rsr r r Ú_setupÙs         zLogging._setupFc Csft|jƒ}t|jƒ}t|jƒ}|j}|j}|j}|j} |rL|  ||||| ¡S|  ||||||| ¡SdSr ) r*Z debuglevelr.Z errorlevelZ logfilelevelr{r[r\r]r~r) rZconfZfile_loggers_onlyZverbose_level_rZ error_level_rZlogfile_level_rr{r[r\r]r r r Ú_setup_from_dnf_confñs   ÿzLogging._setup_from_dnf_confN)F) rrrrrrtr~rr€r r r r rfŸs    rfc@seZdZdd„Zdd„ZdS)ÚTimercCs||_t ¡|_dSr )ÚwhatrPÚstart)rr‚r r r rszTimer.__init__cCs6t ¡|j}d|j|df}t d¡ t|¡dS)Nztimer: %s: %d msièrA)rPrƒr‚r,rmrarg)rÚdiffÚmsgr r r Ú__call__szTimer.__call__N)rrrrr†r r r r rsrcs$eZdZ‡fdd„Zdd„Z‡ZS)ÚLibdnfLoggerCBcs*tt|ƒ ¡t d¡|_t d¡|_dS)NrArv)r@r‡rr,rmÚ _dnf_loggerÚ_librepo_loggerrlrIr r rs zLibdnfLoggerCB.__init__cGsft|ƒdkr|\}}nt|ƒdkr.|\}}}}|tjjjkrP|j t||¡n|j t||¡dS)zoLog message. source -- integer, defines origin (libdnf, librepo, ...) of message, 0 - unknown rrN) ÚlenryÚutilsÚLoggerZLOG_SOURCE_LIBREPOr‰raÚ_LIBDNF_TO_DNF_LOGLEVEL_MAPPINGrˆ)rr:rÚlevelÚmessagerPÚpidr r r r7s    zLibdnfLoggerCB.write)rrrrr7rSr r rIr r‡s r‡):Z __future__rrZdnf.exceptionsrAZ dnf.constZdnf.lockZdnf.utilZ libdnf.reporyr,Zlogging.handlersr8rorPÚwarningsr4Z SUPERCRITICALZCRITICALZERRORr-rbÚDEBUGrgrhr(rirÚobjectrr&r*r+r.r0r6r=ÚhandlersZRotatingFileHandlerr>r`rerfrr‹rŒZLevel_CRITICALZ Level_ERRORZ Level_WARNINGZ Level_NOTICEZ Level_INFOZ Level_DEBUGZ Level_TRACErr‡ZlibdnfLoggerCBZLogZ setLoggerr r r r Ús|    õý a       ù