��
�[c
@sdZddkZddkZddkZddkZddkZdZdZdZdZ dZ
dZeied �eied
�eied�eie d�eie
d
�eied�dZ
ee_ddklZdaheid6eid6eid6eid6eid6eid6eid6eid6eid6eid6eid6eid6ei d6ei!d6ei"d6ei#d 6ei$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|�tjo|S|i�tjot|i�S|i�id�o*|di�tjot|di�StdS(NtLOG_iR(ttypetinttuppert_syslog_facility_mapt
startswith(tfacility((s5/usr/lib/python2.6/site-packages/yum/logginglevels.pytsyslogFacilityMapGscCs8htd6tid6tid6tid6}t||�S(s< Convert an old-style error logging level to the new style. i����iii(t__NO_LOGGINGtloggingtCRITICALtERRORtWARNINGt__convertLevel(terror_levelterror_table((s5/usr/lib/python2.6/site-packages/yum/logginglevels.pytlogLevelFromErrorLevelQs
cCsXh td6tid6td6td6tid6td6td6td6t d 6}t
||�S(
s< Convert an old-style debug logging level to the new style. i����iiiiiiii(R R!tINFORRtDEBUGRRRRR%(tdebug_leveltdebug_table((s5/usr/lib/python2.6/site-packages/yum/logginglevels.pytlogLevelFromDebugLevelXs")cCsey||}WnPtj
oD|i�}||djo||d}qa||d}nX|S(s2 Convert yum logging levels using a lookup table. ii����(tKeyErrortkeys(tlevelttablet new_levelR/((s5/usr/lib/python2.6/site-packages/yum/logginglevels.pyR%_scCs&t|�}tid�i|�dS(Nsyum.verbose(R-R!t getLoggertsetLevel(R0tconverted_level((s5/usr/lib/python2.6/site-packages/yum/logginglevels.pyt
setDebugLevelpscCs&t|�}tid�i|�dS(Ntyum(R(R!R3R4(R0R5((s5/usr/lib/python2.6/site-packages/yum/logginglevels.pyt
setErrorLeveltss/dev/logc
Cs5to;|dj ot|�n|dj ot|�ndStid�}titi�}|i |�ti
d�}t|_|i
|�titi�}|i |�ti
d�} t| _| i
|�ti
d�}
|
iti�t|
_|o�d}d|jo0|idd�}|dt|d�f}ntii|�o
|}n|o�y,t|pd �}tii||�aWn1tij
o"tdj oti�q�q�Xt|pd�|
i
t�q�nta|dj ot|�n|dj ot|�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)ssyum.verboseR7syum.fileloggingt:iiR(t_added_handlerstNoneR6R8R!t Formattert
StreamHandlertsyststdouttsetFormatterR3tFalset propagatet
addHandlertstderrR4R)trsplitRtostpathtexistsRthandlersRtsyslogtsocketterrortcloset
setLoggingApptTrue(
t
debuglevelt
errorleveltsyslog_identtsyslog_facilityt
syslog_devicetplainformattertconsole_stdouttverbosetconsole_stderrtloggert
fileloggertaddresstfacil((s5/usr/lib/python2.6/site-packages/yum/logginglevels.pytdoLoggingSetupysR
cs8|djo'y�tii|�}tii|�pti|dd�ntii|�p-t|d�}ti|d�|i�nti d��ti
|��tidd�}�i|��i
��|dj o|i��fd ��nWq4tj
o ti d
�id|�q4XndS(Nitmodei�twi�syum.fileloggings%(asctime)s %(message)ss%b %d %H:%M:%Scs
�i��S((t
removeHandler((tfilehandlerRZ(s5/usr/lib/python2.6/site-packages/yum/logginglevels.pyt<lambda>�sR7sCannot open logfile %s(RFRGtdirnameRHtmakedirstopentchmodRMR!R3tFileHandlerR<R@RCR;tappendtIOErrortcritical(tuidtlogfiletcleanuptlogdirtft formatter((RZRas5/usr/lib/python2.6/site-packages/yum/logginglevels.pyt
setFileLog�s&
!cCs/to$ti|d�}ti|�ndS(Ns[%(process)d]: %(message)s(RJR!R<R@(tapptsyslogformatter((s5/usr/lib/python2.6/site-packages/yum/logginglevels.pyRN�s(0t__doc__RFRKR>R!tlogging.handlersRRRRRRtaddLevelNameR RAtraiseExceptionsRt
syslog_moduleR;RJtLOG_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%R6R8R:R]RqRN(((s5/usr/lib/python2.6/site-packages/yum/logginglevels.pyt<module>sb
B