Mini Shell

Direktori : /lib64/python3.6/site-packages/pyanaconda/__pycache__/
Upload File :
Current File : //lib64/python3.6/site-packages/pyanaconda/__pycache__/anaconda_logging.cpython-36.pyc

3

Z��e�5�@sLddlZddlmZmZddlmZddlZddlZddlZddl	m
Z
ejZdZ
dZdZdZd	Zd
ZdZdZd
ZdZejZdZddlmZe�Zejejejejej d�Z!dd�Z"dd�Z#Gdd�de$�Z%Gdd�de%e�Z&Gdd�de%e�Z'Gdd�de%ej(�Z)Gdd�de%ej*�Z+Gd d!�d!ej,�Z-Gd"d#�d#e$�Z.d'd%d&�Z/da0dS)(�N)�
SysLogHandler�
SocketHandler)�JournalHandler)�	constantsz;%(asctime)s,%(msecs)03d %(levelname)s %(name)s: %(message)sz%(asctime)s %(message)sz%H:%M:%SzA%(asctime)s,%(msecs)03d %(levelname)s %(log_prefix)s: %(message)sz%anaconda: %(log_prefix)s: %(message)sz/tmp/anaconda.logz/tmp/program.logz/tmp/packaging.logz/tmp/dnf.librepo.logz/tmp/sensitive-info.log�anaconda)�Lock)�debug�info�warning�errorZcriticalcCs
||_dS)N)�autoSetLevel)�handler�value�r�(/usr/lib64/python3.6/anaconda_logging.pyr;srcCs(x"tdd�|j�D]}|j|�qWdS)NcSst|d�o|jS)Nr)�hasattrr)Zhdlrrrr�<lambda>Asz"setHandlersLevel.<locals>.<lambda>)�filterZhandlers�setLevel)�logr�levelr
rrr�setHandlersLevel@src@s2eZdZdZdd�Zedd��Zejdd��ZdS)�_AnacondaLogFixerz� A mixin for logging.StreamHandler that does not lock during format.

        Add this mixin before the Handler type in the inheritance order.
    cCs|j|�}|r|j|�|S)N)r�emit)�self�record�rvrrr�handleMs

z_AnacondaLogFixer.handlecCs|jS)N)�_stream)rrrr�streamTsz_AnacondaLogFixer.streamcs&|�G��fdd�dt�}|�|_dS)Ncs2eZdZ��fdd�Z�fdd�Z�fdd�ZdS)z,_AnacondaLogFixer.stream.<locals>.WriteProxyc
s(�j�z�j||�Wd�j�XdS)N)�acquire�write�release)r�args�kwargs)r
rrrr!asz2_AnacondaLogFixer.stream.<locals>.WriteProxy.writecs
t�|�S)N)�getattr)r�name)rrr�__getattr__hsz8_AnacondaLogFixer.stream.<locals>.WriteProxy.__getattr__cst�||�S)N)�setattr)rr&r)rrr�__setattr__ksz8_AnacondaLogFixer.stream.<locals>.WriteProxy.__setattr__N)�__name__�
__module__�__qualname__r!r'r)r)r
rrr�
WriteProxy_sr-)�objectr)rrr-r)r
rrrXsN)r*r+r,�__doc__r�propertyr�setterrrrrrEsrc@s$eZdZdeefdd�Zdd�ZdS)�AnacondaJournalHandler�cCs||_tj|||d�dS)N)ZSYSLOG_FACILITYZSYSLOG_IDENTIFIER)�tagr�__init__)rr4ZfacilityZ
identifierrrrr5vszAnacondaJournalHandler.__init__cCs@|jr0|j}d|j|f|_tj||�||_ntj||�dS)Nz%s: %s)r4�msgrr)rrZoriginal_msgrrrr}szAnacondaJournalHandler.emitN)r*r+r,�ANACONDA_SYSLOG_FACILITY�ANACONDA_SYSLOG_IDENTIFIERr5rrrrrr2usr2c@seZdZdd�ZdS)�AnacondaSocketHandlercCst|jj|�dd�S)N�
zutf-8)�bytesZ	formatter�format)rrrrr�
makePickle�sz AnacondaSocketHandler.makePickleN)r*r+r,r=rrrrr9�sr9c@seZdZdd�ZdS)�AnacondaFileHandlercCs&tjj||�ddlm}||�dS)Nr)�set_mode)�logging�FileHandlerr5�pyanaconda.core.utilr?)rZ	file_destr?rrrr5�szAnacondaFileHandler.__init__N)r*r+r,r5rrrrr>�sr>c@seZdZdS)�AnacondaStreamHandlerN)r*r+r,rrrrrC�srCc@seZdZdZdd�ZdS)�AnacondaPrefixFilterz�Add a log_prefix field, which is based on the name property,
    but without the "anaconda." prefix.

    Also if name is equal to "anaconda", generally meaning some sort of
    general (or miss-directed) log message, set the log_prefix to "misc".
    cCs>d|_|jr:|jdkrd|_n|jjd�r:|jdd�|_dS)Nr3rZmiscz	anaconda.�	T)Z
log_prefixr&�
startswith)rrrrrr�s
zAnacondaPrefixFilter.filterN)r*r+r,r/rrrrrrD�srDc@sfeZdZdZddd�Zeeddfdd�Zddd	�Ze	j
dfd
d�Zdd
�Zdd�Z
dd�Zdd�ZdS)�AnacondaLogz/etc/rsyslog.confFc	Cst|_d|_||_tjtjd�tjtjd�tjtjd�tjtj	d�tjtj
d�tjd�|_d|j_
|jjtj
�|jt_|jt|jtj
tt�d�|j|jt�tjt�d	�tjtj�}d|_
|jtj
�|jt|tj
d
�|j|�tjtj�}|jtj
�d|_
|jt|tj
d
�|j|�tjtj�}|jtj
�|jt|tjd
�|j|�tjtj�}|jtj
�|jt |tjd
�|j|�tjtj!�}|jtj
�|jt|tjd
�|j|�tjtj"�}d|_
|jt#|tj
d
�tjtj$�}|jtj	�|jt%j&|t'tj	d�dS)NZCRTZERRZWRNZINFZDBGrF)�minLevel�fmtStr�
log_filter)rJ�
log_formatter)rH)rIrH)(�
DEFAULT_LEVELZloglevel�
remote_syslog�write_to_journalr@ZaddLevelName�CRITICAL�ERROR�WARNING�INFO�DEBUG�	getLogger�anaconda_loggerZ	propagater�showwarning�warnings�addFileHandler�
MAIN_LOG_FILE�ANACONDA_ENTRY_FORMATrD�forwardToJournal�	Formatter�ANACONDA_SYSLOG_FORMATrZLOGGER_PROGRAM�PROGRAM_LOG_FILEZLOGGER_PACKAGING�PACKAGING_LOG_FILEZ
LOGGER_DNFZNOTSETZLOGGER_LIBREPO�LIBREPO_LOG_FILEZLOGGER_SIMPLELINEZLOGGER_SENSITIVE_INFO�SENSITIVE_INFO_LOG_FILEZ
LOGGER_STDOUT�sys�stdout�
STDOUT_FORMAT)	rrNZprogram_loggerZpackaging_loggerZ
dnf_loggerZlibrepo_loggerZsimpleline_loggerZsensitive_loggerZ
stdout_loggerrrrr5�sl













zAnacondaLog.__init__NcCsxy^t|t�rt|�}nt|�}|r,|j|�|j|�|jtj|t	��t
||�|j|�Wntk
rrYnXdS)N)
�
isinstance�strr>rC�	addFilterr�setFormatterr@r\�DATE_FORMATr�
addHandler�IOError)r�destZaddToLoggerrHrIZ	autoLevelrJZlogfile_handlerrrrrXs




zAnacondaLog.addFileHandlercCsZ|js
dS|rd}n|j}t|d�}|jtj�|r>|j|�|rL|j|�|j|�dS)zAForward everything that goes in the logger to the journal daemon.N)r4)	rNr&r2rr@rSrgrhrj)rrrKrJr4Zjournal_handlerrrrr[s


zAnacondaLog.forwardToJournalcCs |jjdtj|||||��dS)z� Make sure messages sent through python's warnings module get logged.

            The warnings mechanism is used by some libraries we use,
            notably pykickstart.
        z%sN)rUr
rW�
formatwarning)r�message�category�filename�lineno�file�linerrrrV*szAnacondaLog.showwarningcCs:t||�}|jtjtt��|jtj�tj�j	|�dS)N)
r9rhr@r\�ENTRY_FORMATrirrSrTrj)r�hostZportZ	remotelogrrr�setup_remotelog4s
zAnacondaLog.setup_remotelogcCsddlm}|d�dS)Nr)�restart_serviceZrsyslog)rBrw)rrwrrr�
restartSyslog:szAnacondaLog.restartSyslogc	Cs@d}||_t|jd��}||}|j|�WdQRX|j�dS)z�Updates the location of remote rsyslogd to forward to.

        Requires updating rsyslogd config and restarting rsyslog
        z	*.* @@%s
�aN)rM�open�SYSLOG_CFGFILEr!rx)rrM�template�cfgfileZforward_linerrr�updateRemote?szAnacondaLog.updateRemotec
CsJd}tj|tj�sdSt|jd��}|j||f�WdQRX|j�dS)z&Setup virtio rsyslog logging.
        z*.* %s;anaconda_syslog
Nry)�os�access�W_OKrzr{r!rx)rZvportr|r}rrr�setupVirtioMszAnacondaLog.setupVirtio)F)NN)r*r+r,r{r5rLrtrXr[rb�stderrrVrvrxr~r�rrrrrG�s
S
	rGFcCst|d�adS)N)rN)rG�logger)rNrrr�initZsr�)F)1r@Zlogging.handlersrrZsystemd.journalrrrbrWZpyanaconda.corerrRrLrtrdrirZr]rYr^r_r`raZ
LOG_LOCAL1r7r8Z	threadingrZprogram_log_lockrSrQrPrOZlogLevelMaprrr.rr2r9rAr>Z
StreamHandlerrC�FilterrDrGr�r�rrrr�<module>sL
0/