ó đ v_c@sdZddlZddlZddlZddlZddlZdZdZdZdZ dZ dZ ej ed ƒej ed ƒej ed ƒej e d ƒej e d ƒej e dƒdZ ee_ddlmZdaiejd6ejd6ejd6ejd6ejd6ejd6ejd6ejd6ejd6ejd6ejd6ejd6ej d6ej!d6ej"d6ej#d 6ej$d!6Z%d"„Z&d#„Z'd$„Z(d%„Z)d&„Z*d'„Z+ea,ddd(d)„Z-dd*„Z.d+„Z/dS(,sY Custom logging levels for finer-grained logging using python's standard logging module. i˙˙˙˙Niii iiitINFO_1tINFO_2tDEBUG_1tDEBUG_2tDEBUG_3tDEBUG_4id(t SysLogHandlertKERNtUSERtMAILtDAEMONtAUTHtLPRtNEWStUUCPtCRONtLOCAL0tLOCAL1tLOCAL2tLOCAL3tLOCAL4tLOCAL5tLOCAL6tLOCAL7cCs{t|ƒtkr|S|jƒtkr6t|jƒS|jƒjdƒrs|djƒtkrst|djƒStdS(NtLOG_iR(ttypetinttuppert_syslog_facility_mapt startswith(tfacility((s5/usr/lib/python2.7/site-packages/yum/logginglevels.pytsyslogFacilityMapGscCs8itd6tjd6tjd6tjd6}t||ƒS(s< Convert an old-style error logging level to the new style. i˙˙˙˙iii(t __NO_LOGGINGtloggingtCRITICALtERRORtWARNINGt__convertLevel(t error_levelt error_table((s5/usr/lib/python2.7/site-packages/yum/logginglevels.pytlogLevelFromErrorLevelQs cCs}i td6tjd6tjd6tjd6td6tjd6td6td6tjd 6t d 6t d 6t d 6t d 6}t ||ƒS(s< Convert an old-style debug logging level to the new style. iű˙˙˙iü˙˙˙iý˙˙˙iţ˙˙˙i˙˙˙˙iiiiiiii(R R!R"R#R$tINFORRtDEBUGRRRRR%(t debug_levelt debug_table((s5/usr/lib/python2.7/site-packages/yum/logginglevels.pytlogLevelFromDebugLevelXs  )cCsgy||}WnRtk rbt|jƒƒ}||dkrQ||d}qc||d}nX|S(s2 Convert yum logging levels using a lookup table. iiţ˙˙˙(tKeyErrortsortedtkeys(tlevelttablet new_levelR0((s5/usr/lib/python2.7/site-packages/yum/logginglevels.pyR%as cCs&t|ƒ}tjdƒj|ƒdS(Ns yum.verbose(R-R!t getLoggertsetLevel(R1tconverted_level((s5/usr/lib/python2.7/site-packages/yum/logginglevels.pyt setDebugLevelrs cCs&t|ƒ}tjdƒj|ƒdS(Ntyum(R(R!R4R5(R1R6((s5/usr/lib/python2.7/site-packages/yum/logginglevels.pyt setErrorLevelvs s/dev/logc Cstr<|dk rt|ƒn|dk r8t|ƒndStjdƒ}tjtjƒ}|j |ƒtj dƒ}t |_ |j |ƒtjtjƒ}|j |ƒtj dƒ} t | _ | j |ƒtj dƒ} | jtjƒt | _ |rád} d|krB|jddƒ} | dt| dƒf} ntjj|ƒr]|} n| ráy+t|prd ƒ} tjj| | ƒaWn-tjk r˝tdk rŰtjƒqŰqŢXt|pĘdƒ| j tƒqánta|dk rt|ƒn|dk rt|ƒndS( s; Configure the python logger. errorlevel is optional. If provided, it will override the logging level provided in the logging config file for error messages. debuglevel is optional. If provided, it will override the logging level provided in the logging config file for debug messages. Ns %(message)ss yum.verboseR8syum.fileloggingt:iiR(t_added_handlerstNoneR7R9R!t Formattert StreamHandlertsyststdoutt setFormatterR4tFalset propagatet addHandlertstderrR5R)trsplitRtostpathtexistsRthandlersRtsyslogtsocketterrortcloset setLoggingApptTrue( t debuglevelt errorlevelt syslog_identtsyslog_facilityt syslog_devicetplainformattertconsole_stdouttverbosetconsole_stderrtloggert fileloggertaddresstfacil((s5/usr/lib/python2.7/site-packages/yum/logginglevels.pytdoLoggingSetup{sR                 cs.|dkr*yîtjj|ƒ}tjj|ƒsItj|ddƒntjj|ƒs‡t|dƒ}tj|dƒ|jƒntj dƒ‰tj |ƒ‰tj ddƒ}ˆj |ƒˆj ˆƒ|dk rů|j‡‡fd †ƒnWq*tk r&tj d ƒjd |ƒq*XndS( Nitmodeiítwi€syum.fileloggings%(asctime)s %(message)ss%b %d %H:%M:%Scs ˆjˆƒS(N(t removeHandler((t filehandlerR[(s5/usr/lib/python2.7/site-packages/yum/logginglevels.pytÖsR8sCannot open logfile %s(RGRHtdirnameRItmakedirstopentchmodRNR!R4t FileHandlerR=RARDR<tappendtIOErrortcritical(tuidtlogfiletcleanuptlogdirtft formatter((RbR[s5/usr/lib/python2.7/site-packages/yum/logginglevels.pyt setFileLogżs&         cCs-tr)tj|dƒ}tj|ƒndS(Ns[%(process)d]: %(message)s(RKR!R=RA(tapptsyslogformatter((s5/usr/lib/python2.7/site-packages/yum/logginglevels.pyROÚs(0t__doc__RGRLR?R!tlogging.handlersRRRRRRt addLevelNameR RBtraiseExceptionsRt syslog_moduleR<RKtLOG_KERNtLOG_USERtLOG_MAILt LOG_DAEMONtLOG_AUTHtLOG_LPRtLOG_NEWStLOG_UUCPtLOG_CRONt LOG_LOCAL0t LOG_LOCAL1t LOG_LOCAL2t LOG_LOCAL3t LOG_LOCAL4t LOG_LOCAL5t LOG_LOCAL6t LOG_LOCAL7RRR(R-R%R7R9R;R^RrRO(((s5/usr/lib/python2.7/site-packages/yum/logginglevels.pytsb                            B