
    vg                        d dl mc mZ d dlZd dlZd dlZd dlZ G d d          Z G d de          Z	 G d dej
                  Z G d d	          Z G d
 d          Z G d d          Zd Z G d d          ZdS )    Nc                   F    e Zd ZddZd Zd Zd Zd Zd Zd	 Z	d
 Z
d ZdS )file_logger   ac                     t          |t                    r-|dk    rdd l}|j        | _        nt          ||          | _        n|| _        || _        d S )N-r   )
isinstancestrsysstdoutfileopendo_flush)selfr   flushmoder   s        U/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/supervisor/medusa/logger.py__init__zfile_logger.__init__!   sV    dC   	s{{


J		 $--		DI    c                     d| j         z  S )Nz<file logger: %s>r   r   s    r   __repr__zfile_logger.__repr__,   s    "TY..r   c                 b    | j                             |           |                                  d S N)r   writemaybe_flush)r   datas     r   r   zfile_logger.write/   s.    	r   c                 b    | j                             |           |                                  d S r   )r   	writeliner   )r   lines     r   r    zfile_logger.writeline3   s0    	T"""r   c                 b    | j                             |           |                                  d S r   )r   
writelinesr   )r   liness     r   r#   zfile_logger.writelines7   s0    	e$$$r   c                 J    | j         r| j                                         d S d S r   )r   r   r   r   s    r   r   zfile_logger.maybe_flush;   s.    = 	IOO	 	r   c                 8    | j                                          d S r   )r   r   r   s    r   r   zfile_logger.flush?   s    	r   c                     d S r    )r   argss     r   	softspacezfile_logger.softspaceB   s    r   c                 x    |d         dvr|                      |dz              d S |                      |           d S )N)
r.   )r   r   messages     r   logzfile_logger.logE   sE    2;l**JJ$'''''JJ     r   N)r   r   )__name__
__module____qualname__r   r   r   r    r#   r   r   r*   r1   r(   r   r   r   r      s        	 	 	 	/ / /            ! ! ! ! !r   r   c                   4    e Zd Zd
dZd Zd Zd Zd Zd	 ZdS )rotating_file_loggerNr   r   c                     t                               | |||           || _        || _        || _        || _        |                     | j                  | _        d S r   )r   r   filenamer   freqmaxsizenext_backuprotate_when)r   r   r9   r:   r   r   s         r   r   zrotating_file_logger.__init__V   sV    dD%666		++DI66r   c                     d| j         z  S )Nz<rotating-file logger: %s>r   r   s    r   r   zrotating_file_logger.__repr__^   s    +di77r   c                 N   t          j        t          j                               \	  }}}}}}}}	}
|dk    r t          j        |||dz   ddddddf	          S |dk    r#t          j        ||||z
  dz   ddddddf	          S |dk    r t          j        ||dz   dddddddf	          S d S )Ndailyr   r   r,   weekly   monthly)time	localtimemktime)r   r9   yrmodayhrminsecwdjdaydsts              r   r;   z rotating_file_logger.next_backupb   s    59^DIKK5P5P2Rb#sBc7??;2c!eQqAa;<<<X;2c"fQh!Aq2>???Y;2a41Qq!Ab9:::4r   c                 r    |                                   | j        r| j                                         d S d S r   )maybe_rotater   r   r   r   s    r   r   z rotating_file_logger.maybe_flushm   s@    = 	IOO	 	r   c                    | j         rQt          j                    | j        k    r5|                                  |                     | j                   | _        d S | j        ru	 t          j        | j                  t          j	                 | j        k    r|                                  d S d S # t          j
        $ r |                                  Y d S w xY wd S r   )r9   rC   r<   rotater;   r:   osstatr8   ST_SIZEerrorr   s    r   rP   z!rotating_file_logger.maybe_rotater   s    9 	t'777KKMMM#//	::D\ 	74=))$,7$,FFKKMMMMM GF8   		 	s   !AB+ +#CCc           	         t          j        t          j                               \	  }}}}}}}}}		 | j                                         d| j        |||fz  }
	 t          |
d                                           |
d|||fz  z  }
n#  Y nxY wt          j        | j        |
           t          | j        | j                  | _        d S #  Y d S xY w)Nz%s.ends%04d%02d%02drz-%02d%02d%02d)	rC   rD   r   closer8   r   rS   renamer   )r   rF   rG   rH   rI   rJ   rK   rL   rM   rN   newnames              r   rR   zrotating_file_logger.rotate}   s    59^DIKK5P5P2Rb#sBc	IOO+t}b"c.JJGWc""((***?b#s^;;IdmW---T]DI66DIII	DDs#   'C	 -B C	 B	>C	 	C)NNr   r   )	r2   r3   r4   r   r   r;   r   rP   rR   r(   r   r   r6   r6   Q   ss        
7 7 7 78 8 8	 	 	  
	 	 	    r   r6   c                        e Zd Zd Zd Zd ZdS )socket_loggerc                 P   t           j                            |            t          |t                    r+|                     t          j        t          j                   n*|                     t          j	        t          j                   | 
                    |           || _        d S r   )asynchat
async_chatr   r	   r
   create_socketsocketAF_UNIXSOCK_STREAMAF_INETconnectaddress)r   rg   s     r   r   zsocket_logger.__init__   s    $$T***gs## 	D0BCCCC0BCCCgr   c                     d| j         z  S )Nz<socket logger: address=%s>)rg   r   s    r   r   zsocket_logger.__repr__   s    ,t|;;r   c                     |dd          dk    r| j                             |dz              d S | j                             |           d S )N
)rb   pushr/   s     r   r1   zsocket_logger.log   sR    233<6!!Kg./////Kg&&&&&r   Nr2   r3   r4   r   r   r1   r(   r   r   r]   r]      sA          < < <' ' ' ' 'r   r]   c                        e Zd Zd Zd Zd ZdS )multi_loggerc                     || _         d S r   )loggers)r   rq   s     r   r   zmulti_logger.__init__   s    r   c                 0    dt          | j                  z  S )Nz<multi logger: %s>)reprrq   r   s    r   r   zmulti_logger.__repr__   s    #tDL'9'9::r   c                 D    | j         D ]}|                    |           d S r   )rq   r1   r   r0   loggers      r   r1   zmulti_logger.log   s2    l 	! 	!FJJ    	! 	!r   Nrm   r(   r   r   ro   ro      sA          ; ; ;! ! ! ! !r   ro   c                   8    e Zd ZdZd Z G d d          Zd ZdS )resolving_loggerzFeed (ip, message) combinations into this logger to get a
    resolved hostname in front of the message.  The message will not
    be logged until the PTR request finishes (or fails).c                 "    || _         || _        d S r   )resolverrv   )r   rz   rv   s      r   r   zresolving_logger.__init__   s     r   c                       e Zd Zd Zd ZdS )resolving_logger.logger_thunkc                 "    || _         || _        d S r   )r0   rv   ru   s      r   r   z&resolving_logger.logger_thunk.__init__   s    "DL DKKKr   c                 V    |s|}| j                             |d| j                   d S N:)rv   r1   r0   )r   hostttlanswers       r   __call__z&resolving_logger.logger_thunk.__call__   s6     KOO=>>>>>r   N)r2   r3   r4   r   r   r(   r   r   logger_thunkr|      s2        	! 	! 	!	? 	? 	? 	? 	?r   r   c                 n    | j                             ||                     || j                             d S r   )rz   resolve_ptrr   rv   r   ipr0   s      r   r1   zresolving_logger.log   sD    !!!! 	 	 	 	 	r   N)r2   r3   r4   __doc__r   r   r1   r(   r   r   rx   rx      sd        < <  ? ? ? ? ? ? ? ?    r   rx   c                       e Zd ZdZd Zd ZdS )unresolving_loggerz&Just in case you don't want to resolvec                     || _         d S r   )rv   )r   rv   s     r   r   zunresolving_logger.__init__   s    r   c                 D    | j                             |d|           d S r   )rv   r1   r   s      r   r1   zunresolving_logger.log   s'    BBB011111r   Nr2   r3   r4   r   r   r1   r(   r   r   r   r      s8        00  2 2 2 2 2r   r   c                 J    | r | d         dv r| d d         } | r
| d         dv | S )Nr,   rk   r(   )r!   s    r   	strip_eolr      sB    
 48v%%CRCy  48v%%Kr   c                        e Zd ZdZddZd ZdS )tail_loggerz*Keep track of the last <size> log messages  c                 0    || _         || _        g | _        d S r   )sizerv   messages)r   rv   r   s      r   r   ztail_logger.__init__   s    	r   c                     | j                             t          |                     t          | j                   | j        k    r| j         d= | j                            |           d S )Nr   )r   appendr   lenr   rv   r1   r/   s     r   r1   ztail_logger.log   s[    i11222**a !!!!!r   N)r   r   r(   r   r   r   r      s=        44   
" " " " "r   r   )supervisor.medusa.asynchat_25medusaasynchat_25r_   rb   rC   rS   rT   r   r6   r`   r]   ro   rx   r   r   r   r(   r   r   <module>r      s   1 0 0 0 0 0 0 0 0   				 .+! +! +! +! +! +! +! +!f9 9 9 9 9K 9 9 9z' ' ' ' 'X( ' ' ',	! 	! 	! 	! 	! 	! 	! 	!       82 2 2 2 2 2 2 2  
" " " " " " " " " "r   