GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/supervisor/__pycache__/loggers.cpython-310.pyc
o

�B�]�2�@s>dZddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	ddlm
Z
Gdd�d�ZGd	d
�d
�Zdd�Z
e
�Zd
d�ZGdd�d�ZGdd�de�ZGdd�d�ZGdd�de�ZGdd�de�ZGdd�d�ZGdd�d�ZGdd�de�Zd+dd �Zd!Zefd"d#�Zd$d%�Zd&d'�Zd,d)d*�ZdS)-z�
Logger implementation loosely modeled on PEP 282.  We don't use the
PEP 282 logger implementation in the stdlib ('logging') because it's
idiosyncratic and a bit slow for our purposes (we don't use threads).
�N��syslog)�long)�is_text_stream)�	as_stringc@s(eZdZdZdZdZdZdZdZdZ	dS)	�LevelsByName�2�(���
��N)
�__name__�
__module__�__qualname__�CRIT�ERRO�WARN�INFO�DEBG�TRAC�BLAT�rr�4/usr/lib/python3/dist-packages/supervisor/loggers.pyrsrc@s6eZdZejZejZejZ	ej
ZejZ
ejZejZdS)�LevelsByDescriptionN)rrrrr�criticalr�errorr�warnr�infor�debugr�tracer�blatherrrrrrs
rcCs.i}tj��D]
\}}|�d�s|||<q|S)N�_)r�__dict__�items�
startswith)�bynumber�name�numberrrr�
_levelNumbers's
�r*cCstt|d�}|S�N)�getattrr)�description�numrrr�getLevelNumByDescription0sr/c@sPeZdZdZejZddd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dS)�Handler�%(message)sNcCs||_d|_dS�NF)�stream�closed)�selfr3rrr�__init__8�
zHandler.__init__cC�
||_dSr+)�fmt)r5r9rrr�	setFormat<�
zHandler.setFormatcCr8r+��level)r5r=rrr�setLevel?r;zHandler.setLevelc
CsJz|j��WdSty$}z|jdtjkr�WYd}~dSd}~ww�Nr)r3�flush�IOError�args�errno�EPIPE�r5�whyrrrr@Bs���z
Handler.flushcCsX|js*t|jd�r z|j��}Wn	tyYnw|dkr dS|j��d|_dSdS)N�filenorT)r4�hasattrr3rGrA�close)r5�fdrrrrIJs�

�z
Handler.closecCs�zO|jdkot|jt�o|jp|jddik}t|j�}|r#|j}n|j|��}|r1|�d�}z|j�	|�Wnt
yH|j�	|�Ynw|��WdS|��YdS)Nr1�exc_infozutf-8)
r9�
isinstance�msg�bytes�kwrr3�asdict�encode�write�UnicodeErrorr@�handleError)r5�record�binary�
binary_streamrMrrr�emitYs(

��
�zHandler.emitcCs.t��}t�|d|d|ddtj�~dS)Nr��)�sysrK�	traceback�print_exception�stderr)r5�eirrrrTqs zHandler.handleErrorr+)rrrr9rrr=r6r:r>r@rIrXrTrrrrr04s
r0c@s&eZdZddd�Zdd�Zdd�ZdS)	�
StreamHandlerNcCst�||�dSr+)r0r6)r5�strmrrrr6w�zStreamHandler.__init__cCst|jd�r
|j��dSdS)N�clear)rHr3rc�r5rrr�removezs�zStreamHandler.removecC�dSr+rrdrrr�reopen~�zStreamHandler.reopenr+)rrrr6rergrrrrr`vs
r`c@s>eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�ZdS)�BoundIO�cCs||_||_dSr+)�maxbytes�buf)r5rkrlrrrr6�r7zBoundIO.__init__cCrfr+rrdrrrr@�rhz
BoundIO.flushcCs|��dSr+)rcrdrrrrI�sz
BoundIO.closecCs>t|�}t|j�||jkr|j|d�|_|j|7_dSr+)�lenrlrk)r5�b�blenrrrrR�sz
BoundIO.writecCs|jSr+�rlrdrrr�getvalue�szBoundIO.getvaluecCs
d|_dS)Nrjrprdrrrrc�r;z
BoundIO.clearN)rj)	rrrr6r@rIrRrqrcrrrrri�s
ric@s*eZdZdZd
dd�Zdd�Zdd�Zd	S)�FileHandlerz3File handler which supports reopening of logs.
    �abc
Csxt�|�zt||�|_Wn&ty3}z|dkr(|jtjkr(d}t||�|_n�WYd}~nd}~ww||_||_dS)Nrs�wb)	r0r6�openr3�OSErrorrC�ESPIPE�baseFilename�mode)r5�filenamery�errrr6�s
���
zFileHandler.__init__cCs"|��t|j|j�|_d|_dSr2)rIrurxryr3r4rdrrrrg�s
zFileHandler.reopenc
CsT|��z	t�|j�WdSty)}z|jdtjkr�WYd}~dSd}~wwr?)rI�osrerxrvrBrC�ENOENTrErrrre�s���zFileHandler.removeN)rs)rrr�__doc__r6rgrerrrrrr�s

rrc@sJeZdZ		ddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Zdd�Z	dS)�RotatingFileHandlerrs� rcCs6|dkrd}t�|||�||_||_d|_d|_dS)a�
        Open the specified file and use it as the stream for logging.

        By default, the file grows indefinitely. You can specify particular
        values of maxBytes and backupCount to allow the file to rollover at
        a predetermined size.

        Rollover occurs whenever the current log file is nearly maxBytes in
        length. If backupCount is >= 1, the system will successively create
        new files with the same pathname as the base file, but with extensions
        ".1", ".2" etc. appended to it. For example, with a backupCount of 5
        and a base file name of "app.log", you would get "app.log",
        "app.log.1", "app.log.2", ... through to "app.log.5". The file being
        written to is always "app.log" - when it gets filled up, it is closed
        and renamed to "app.log.1", and if files "app.log.1", "app.log.2" etc.
        exist, then they are renamed to "app.log.2", "app.log.3" etc.
        respectively.

        If maxBytes is zero, rollover never occurs.
        rrsrN)rrr6�maxBytes�backupCount�counter�every)r5rzryr�r�rrrr6�s
zRotatingFileHandler.__init__cCst�||�|��dS)z�
        Emit a record.

        Output the record to the file, catering for rollover as described
        in doRollover().
        N)rrrX�
doRollover)r5rUrrrrX�szRotatingFileHandler.emitcCs
t�|�Sr+)r|re�r5�fnrrr�_remove�s
zRotatingFileHandler._removecCst�||�Sr+)r|�rename)r5�src�tgtrrr�_rename��zRotatingFileHandler._renamecCstj�|�Sr+)r|�path�existsr�rrr�_exists�r�zRotatingFileHandler._existsc
Cs�|�|�r(z|�|�Wnty'}z|jdtjkr�WYd}~nd}~wwz	|�||�WdStyM}z|jdtjkrB�WYd}~dSd}~wwr?)r�r�rvrBrCr}r�)r5�sfn�dfnrFrrr�removeAndRename�s"
������z#RotatingFileHandler.removeAndRenamecCs�|jdkrdS|j��|jksdS|j��|jdkrOt|jddd�D]}d|j|f}d|j|df}tj�	|�rB|�
||�q$|jd}|�
|j|�t|jd�|_dS)z<
        Do a rollover, as described in __init__().
        rNrY���z%s.%dz.1rt)r�r3�tellrIr��rangerxr|r�r�r�ru)r5�ir�r�rrrr�s


�
zRotatingFileHandler.doRolloverN)rsr�r)
rrrr6rXr�r�r�r�r�rrrrr�s
�
rc@seZdZdd�Zdd�ZdS)�	LogRecordcKs||_||_||_d|_dSr+)r=rMrO�dictrepr)r5r=rMrOrrrr6s
zLogRecord.__init__cCsx|jdur9t��}|t|�d}t�dt�|��}d||f}t|j}t|j�}|j	r2||j	}|||d�|_|jS)Ni�z%Y-%m-%d %H:%M:%Sz%s,%03d)�message�	levelname�asctime)
r��timer�strftime�	localtime�LOG_LEVELS_BY_NUMr=rrMrO)r5�now�msecs�part1r�r�rMrrrrPs



�zLogRecord.asdictN)rrrr6rPrrrrr�sr�c@sneZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�LoggerNcCs*|durtj}||_|durg}||_dSr+)rrr=�handlers)r5r=r�rrrr6,s
zLogger.__init__cCs|jD]}|��qdSr+)r�rI)r5�handlerrrrrI5s

�zLogger.closecK�*tj|jkr|jtj|fi|��dSdSr+)rrr=�log�r5rMrOrrrr"9��zLogger.blathercKr�r+)rrr=r�r�rrrr!=r�zLogger.tracecKr�r+)rrr=r�r�rrrr Ar�zLogger.debugcKr�r+)rrr=r�r�rrrrEr�zLogger.infocKr�r+)rrr=r�r�rrrrIr�zLogger.warncKr�r+)rrr=r�r�rrrrMr�zLogger.errorcKr�r+)rrr=r�r�rrrrQr�zLogger.criticalcKs6t||fi|��}|jD]}||jkr|�|�qdSr+)r�r�r=rX)r5r=rMrOrUr�rrrr�Us


��z
Logger.logcCs|j�|�dSr+)r��append)r5�hdlrrrr�
addHandler[rbzLogger.addHandlercCst�r+)�NotImplementedErrorrdrrrrq^rhzLogger.getvalue)NN)rrrr6rIr"r!r rrrrr�r�rqrrrrr�+s
	r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
SyslogHandlercCst�|�tdus
Jd��dS)NzSyslog module not present)r0r6rrdrrrr6bs
zSyslogHandler.__init__cCrfr+rrdrrrrIfrhzSyslogHandler.closecCrfr+rrdrrrrgirhzSyslogHandler.reopencCst�|�dSr+r)r5rMrrr�_sysloglszSyslogHandler._syslogc	Cs�z7|��}|d}|�d��d�D]#}||d<|j|}z|�|�Wqty4|�|�d��YqwWdS|��YdS)Nr��
zUTF-8)rP�rstrip�splitr9r�rSrQrT)r5rU�paramsr��linerMrrrrXps
��zSyslogHandler.emitN)rrrr6rIrgr�rXrrrrr�asr�cCst|�Sr+)r�r<rrr�	getLogger~sr�i cCs<t|�}t|�}|�|j�|�|�|�|�|j|_|Sr+)rir`r>r=r:r�rq)�loggerr9rk�ior�rrr�handle_boundIO�s

r�cCs.ttj�}|�|�|�|j�|�|�dSr+)r`r[�stdoutr:r>r=r��r�r9r�rrr�
handle_stdout�s

r�cCs*t�}|�|�|�|j�|�|�dSr+)r�r:r>r=r�r�rrr�
handle_syslog�s
r�FcCsT|dkrt�}n|durt|�}nt|d||�}|�|�|�|j�|�|�|S)NrF�a)r�rrrr:r>r=r�)r�rzr9�rotatingrk�backupsr�rrr�handle_file�s


r�r+)Frr)r~r|rCr[r�r\�supervisor.compatrrrrrrr*r�r/r0r`rirrrr�r�r�r��_2MBr�r�r�r�rrrr�<module>s:			B$Z6