
    Tf;              
          d dl Z d dlZd dlZd dlZd dlZdej        j        _        d dlm	Z	 d dlm
Z
 d dlZd dlZd dlZd dlZd dlZd dlmZ i dddd	d
ddddddd dddddddddddddddddd d!d"d#d$d%d&d'd(d)Zdd*d+d,gd-d+d.gd/d0d1d+d,gd/d2d1d3d4d5d6d7d4d5d8d7d9d5d:d;d<d=id>Zd? Z G d@ dAe          ZdB Z G dC dDe          ZdS )E    N   )
dictConfig)
fileConfig)utilauth   authpriv
   cron	   daemon   ftp   kernlpr   mail   news   securitysyslog   useruucp   local0   local1   local2   local3               )local4local5local6local7FINFOconsole)levelhandlerserror_consoleTgunicorn.error)r0   r1   	propagatequalnamegunicorn.access)r3   r6   zlogging.StreamHandlergenericzext://sys.stdout)class	formatterstreamzext://sys.stderr)r/   r2   5%(asctime)s [%(process)d] [%(levelname)s] %(message)s[%Y-%m-%d %H:%M:%S %z]zlogging.Formatter)formatdatefmtr8   )versiondisable_existing_loggersrootloggersr1   
formattersc                      t           j        } t          | j        j                                                  }d |D             S )z get list of all loggers c                 6    g | ]}t          j        |          S  )logging	getLogger).0names     C/var/www/html/env/lib/python3.11/site-packages/gunicorn/glogging.py
<listcomp>zloggers.<locals>.<listcomp>]   s#    999Gd##999    )rG   rA   listmanager
loggerDictkeys)rA   existings     rK   rB   rB   Y   s;    <DDL+002233H999999rM   c                   $     e Zd Zd Z fdZ xZS )	SafeAtomsc                     t                               |            |                                D ]9\  }}t          |t                    r|                    dd          | |<   4|| |<   :d S )N"z\")dict__init__items
isinstancestrreplace)selfatomskeyvalues       rK   rX   zSafeAtoms.__init__b   so    d++-- 	" 	"JC%%% "!MM#u55S		!S				" 	"rM   c                     |                     d          r;|                                }|| v r!t                                          |          S dS || v r!t                                          |          S dS )N{-)
startswithlowersuper__getitem__)r]   kkl	__class__s      rK   rg   zSafeAtoms.__getitem__j   sp    << 	BTzzww**2...s9977&&q)))3rM   )__name__
__module____qualname__rX   rg   __classcell__)rj   s   @rK   rT   rT   `   sG        " " "
 
 
 
 
 
 
 
 
rM   rT   c                    |                      d          rhd }|                     dd          }t          |          dk    r |d         } |d         dk    rt          j        }||                     d          d         fS |                      d          r(|                     d          d         } t          j        }nL|                      d          r(|                     d          d         } t          j        }nt          d	          d
| v r:d| v r6|                     d          d         dd                                          }nOd| v r.|                     d          d                                         }n| dk    rd}n|                                 }|                     d          d         } d| v rR|                     dd          d         }|                                st          d|z            t          |          }nd}|||ffS )Nzunix://#r   r   r   dgramzudp://ztcp://zinvalid syslog address[]: 	localhostz%r is not a valid port number.i  )
rd   splitlensocket
SOCK_DGRAMSOCK_STREAMRuntimeErrorre   isdigitint)addr	sock_typepartssocktypehostports         rK   parse_syslog_addressr   w   s    y!! 
5	 

3""u::??8DQx7"""-	4::i00344x   5zz(##A&$		"	" 5zz(##A&%3444
d{{sd{{zz#q!!""%++--	zz#q!''))	zz||::c??2D
d{{zz#q!!!$||~~ 	H?$FGGG4yytTl##rM   c                       e Zd Zej        ej        ej        ej        ej        dZ	ej        Z
dZdZdZdZeZd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZddZ d Z!d Z"dS )Logger)criticalerrorwarninginfodebugr;   r<   z%(message)sz[%(process)d] %(message)sc                 ,   t          j        d          | _        d| j        _        t          j        d          | _        d| j        _        g | _        g | _        d | _        t          j	                    | _
        || _        |                     |           d S )Nr3   Fr6   )rG   rH   	error_logr4   
access_logerror_handlersaccess_handlerslogfile	threadingLocklockcfgsetup)r]   r   s     rK   rX   zLogger.__init__   s|     *+;<<#( !+,=>>$)! !N$$	

3rM   c                    | j                             |j                                        t          j                  | _        | j                            | j                   | j                            t          j                   | j	        j
        r|j        dk    rt          j        t          j        fD ]}|                                 t!          |j        d          | _        t%          j        | j                                        t          j                                                   t%          j        | j                                        t          j                                                   |                     | j        |j        t	          j        | j        | j                             |j        D|                     | j        |j        t	          j        | j                  t          j                   |j        rK|                     | j        || j        d           |j        s"|                     | j        || j        d           |j        rt@          !                                }|"                    |j                   	 tG          |           d S # tH          tJ          tL          tN          f$ r!}tQ          tS          |                    d }~ww xY w|j*        rt@          !                                }t$          j+        ,                    |j*                  r	 t[          j.        t!          |j*                            }|"                    |           tG          |           d S # tZ          j/        tH          tJ          tL          tN          f$ r!}tQ          tS          |                    d }~ww xY wd S |j0        rt$          j+        ,                    |j0                  rct@          !                                }|j0        |d<   t$          j+        1                    |j0                  |d<   te          |j0        |d	           d S d
}tQ          ||j0        z            d S )Nrc   a+)fmtr:   r   access__file__hereF)defaultsr@   z Error: log config '%s' not found)3
LOG_LEVELSgetloglevelre   rG   r.   r   setLevelr   r   capture_outputerrorlogsysstdoutstderrflushopenr   osdup2fileno_set_handler	Formatter	error_fmtr>   	accesslog
access_fmtr   _set_syslog_handler
syslog_fmt!disable_redirect_access_to_sysloglogconfig_dictCONFIG_DEFAULTScopyupdater   AttributeErrorImportError
ValueError	TypeErrorr}   r[   logconfig_jsonpathexistsjsonloadJSONDecodeError	logconfigdirnamer   )r]   r   r:   configexcconfig_jsonr   msgs           rK   r   zLogger.setup   s   ++CL,>,>,@,@',OO...  ... 8" 	@s|s':':*cj0  d33DLGDL''))3:+<+<+>+>???GDL''))3:+<+<+>+>???$.#,!+DNDLII	K 	K 	K =$%do66sz     : 	$$T_g   8 ((OS$/8    $	8$))++FMM#,----6""""""	 - - - #3s88,,,-  	8$))++Fw~~c011 11"&)D1C,D,D"E"EKMM+...v&&&&&(" 1 1 1 's3xx00011 1 ] 		8w~~cm,, 8*//11'*}$#%7??3=#A#A 3=849; ; ; ; ; ; 9"3#6777		8 		8s1   J K9KK"A
M. .(N7N22N7c                 2     | j         j        |g|R i | d S N)r   r   r]   r   argskwargss       rK   r   zLogger.critical  s-    5d555f55555rM   c                 2     | j         j        |g|R i | d S r   )r   r   r   s       rK   r   zLogger.error  -    S24222622222rM   c                 2     | j         j        |g|R i | d S r   )r   r   r   s       rK   r   zLogger.warning  s-    s4T444V44444rM   c                 2     | j         j        |g|R i | d S r   )r   r   r   s       rK   r   zLogger.info  s-    C1$111&11111rM   c                 2     | j         j        |g|R i | d S r   )r   r   r   s       rK   r   zLogger.debug  r   rM   c                 2     | j         j        |g|R i | d S r   )r   	exceptionr   s       rK   r   zLogger.exception  s-      6t666v66666rM   c                     t          |t                    r7| j                            |                                t
          j                  } | j        j        ||g|R i | d S r   )	rZ   r[   r   r   re   rG   r.   r   log)r]   lvlr   r   r   s        rK   r   z
Logger.log  sc    c3 	A/%%ciikk7<@@C35d555f55555rM   c                 L   |j         }t          |t                    r|                    dd          d         }i d|                    dd          ddd|                     |          pdd	|                                 d
|d         d|d         d|d         d|d|                    d          d|                    d          d|                    d          d|                    d          dt          |dd          durt          |j                  pddt          |dd          d|                    dd          d|                    dd          d|j	        d|j	        dz  |j
        z   d |j	        d!z  t          |j
        d!z            z   d"|j	        |j
        fz  d#t          j                    z  d$}t          |d%          r|j        }n|}t          |d&          r|                                }|                    d' |D                        |j        }t          |d&          r|                                }|                    d( |D                        |                                }	|                    d) |	D                        |S )*z( Gets atoms for log formatting.
        Nr   r   hREMOTE_ADDRrc   lutrREQUEST_METHOD RAW_URISERVER_PROTOCOLsmU	PATH_INFOqQUERY_STRINGHbsentBfHTTP_REFERERaHTTP_USER_AGENTTDi@B Mi  z%d.%06dz<%s>)LpheadersrY   c                 D    i | ]\  }}d |                                 z  |S )z{%s}ire   rI   rh   vs      rK   
<dictcomp>z Logger.atoms.<locals>.<dictcomp>J  s+    EEEAg		)1EEErM   c                 D    i | ]\  }}d |                                 z  |S )z{%s}or   r   s      rK   r   z Logger.atoms.<locals>.<dictcomp>Q  s+    FFFAg		)1FFFrM   c                 D    i | ]\  }}d |                                 z  |S )z{%s}er   r   s      rK   r   z Logger.atoms.<locals>.<dictcomp>U  s+    KKKAg		)1KKKrM   )statusrZ   r[   rx   r   	_get_usernowgetattrr   secondsmicrosecondsr   r   getpidhasattrr   rY   r   )
r]   respreqenvironrequest_timer   r^   req_headersresp_headersenviron_variabless
             rK   r^   zLogger.atoms#  s!    fc"" 	.\\$**1-F
]C00

 ((/C
 	

 w'7888&y111&'899;
 
 -..
 [))
 ^,,
 .//
 vt,,D8KS^^Rs
 vt,,
 ^S11
  .44!
" %#
$ ,&0L4MM%
& ,&-\5NQU5U1V1VV'
( l2L4MNN")++%+
 
 
2 3	"" 	+KKK;(( 	.%++--KEEEEEFFF|<)) 	0'--//L 	FFFFFGGG $MMOOKK9JKKKLLLrM   c                    | j         j        s>| j         j        s2| j         j        s&| j         j        s| j         j        r| j         j        rdS |                     |                     ||||                    }	 | j	        
                    | j         j        |           dS # t          $ r* |                     t          j                               Y dS w xY w)z\ See http://httpd.apache.org/docs/2.0/logs.html#combined
        for format details
        N)r   r   r   r   r   r   r   atoms_wrapper_classr^   r   r   access_log_format	Exceptionr   	traceback
format_exc)r]   r  r  r	  r
  
safe_atomss         rK   r   zLogger.accessY  s    
 " 	dh&8 	8"	&*h&=	HO	$(H$N	 F
 --JJtS'<88
 

	/O  !;ZHHHHH 	/ 	/ 	/JJy+--......	/s   7%B 0CCc                 *    t          j        d          S )z) return date in Apache Common Log Format z[%d/%b/%Y:%H:%M:%S %z])timestrftime)r]   s    rK   r  z
Logger.nowo  s    }5666rM   c                    | j         j        r.| j         j        dk    rt          j        t          j        fD ]}|                                 | j        5  | j        | j        	                                 t          | j         j        d          | _        t          j        | j                                        t          j                                                   t          j        | j                                        t          j                                                   d d d            n# 1 swxY w Y   t                      D ]}|j        D ]}t!          |t"          j                  rw|                                 	 |j        r-|	                                 |                                |_        |                                 z# |                                 w xY wd S )Nrc   r   )r   r   r   r   r   r   r   r   r   closer   r   r   r   rB   r1   rZ   rG   FileHandleracquirer:   _openrelease)r]   r:   r   handlers       rK   reopen_fileszLogger.reopen_filess  s   8" 		Dtx'8C'?'?*cj0   D D<+L&&(((#DH$5t<<++--sz/@/@/B/BCCC++--sz/@/@/B/BCCCD D D D D D D D D D D D D D D 99 		* 		*C< * *gw':;; *OO%%%*"> =#MMOOO-4]]__GN))))))))**		* 		*s   CD11D58D54GG#c                 Z   t                      D ]}|j        D ]}t          |t          j                  ru|                                 	 |j        r+t          j        |j        	                                           |
                                 x# |
                                 w xY wd S r   )rB   r1   rZ   rG   r  r  r:   r   close_on_execr   r  )r]   r   r  s      rK   r!  zLogger.close_on_exec  s    99 	* 	*C< * *gw':;; *OO%%%*"> H .w~/D/D/F/FGGG))))))))**	* 	*s   	2BB&c                 D    |j         D ]}t          |dd          r|c S d S )N	_gunicornF)r1   r  )r]   r   r   s      rK   _get_gunicorn_handlerzLogger._get_gunicorn_handler  s?     	 	Aq+u-- 	 	rM   Nc                    |                      |          }|r|j                            |           ||dk    rt          j        |          }nit          j        |           t          j        |          }	 t          j	        |j
        | j        j        | j        j                   n# t          $ r Y nw xY w|                    |           d|_        |                    |           d S d S )Nrc   T)r$  r1   removerG   StreamHandlerr   check_is_writabler  r   chownbaseFilenamer   r   groupOSErrorsetFormatterr#  
addHandler)r]   r   outputr   r:   r   s         rK   r   zLogger._set_handler  s    &&s++ 	#L"""}})&11&v...'//HQ^TX]DHNKKKK    D
 NN3AKNN1! s   8/B( (
B54B5c                    |j         p|j                            dd          }d|d|}t          j        |d|          }	 t
          |j                                                 }n# t          $ r t          d          w xY wt          |j                  \  }}t          j                            |||          }	|	                    |           d|	_        |                    |	           d S )Nrt   .z	gunicorn.z: zunknown facility name)addressfacilityr   T)syslog_prefix	proc_namer\   rG   r   SYSLOG_FACILITIESsyslog_facilityre   KeyErrorr}   r   syslog_addrr1   SysLogHandlerr-  r#  r.  )
r]   r   r   r   rJ   prefixr3  r   r   r   s
             rK   r   zLogger._set_syslog_handler  s
   "Ecm&;&;C&E&E%+VVTT2 VVVSS 9::	8()<)B)B)D)DEHH 	8 	8 	86777	8 .co>>$ **44<x + Q Q 	
sqs   $A* *Bc                 6   d }|                     d          }|r|                                                    d          r|                    dd          }t	          |          dk    r	 t          j        |d                                                             d                    }|                    dd          d         	                    d	          }n?# t          t          j        t          f$ r }|                     d
|           Y d }~nd }~ww xY w|S )NHTTP_AUTHORIZATIONbasicr   r   r   zutf-8   :r   zUTF-8zCouldn't get username: %s)r   re   rd   rx   ry   base64	b64decodestripencodedecoder   binasciiErrorUnicodeDecodeErrorr   )r]   r	  r   	http_authr   r   s         rK   r   zLogger._get_user  s   KK 455	 
	A**55g>> 
	A??3**D4yyA~~A "+DGMMOO,B,B7,K,KLLD::dA..q188AADD!8>3EF A A AJJ:C@@@@@@@@As   +A.C D6DDr   )#rk   rl   rm   rG   CRITICALERRORWARNINGr.   DEBUGr   r   r   r>   r   r   rT   r  rX   r   r   r   r   r   r   r   r   r^   r   r  r  r!  r$  r   r   r   rF   rM   rK   r   r      sw        $? J |HHI'GJ,J#
 
 
F8 F8 F8P6 6 63 3 35 5 52 2 23 3 37 7 76 6 6
4 4 4l/ / /,7 7 7* * *.	* 	* 	*  
   0  4    rM   r   )r@  rE  r   r  rG   r   rO   emittedNoHandlerWarninglogging.configr   r   r   rz   r   r   r  gunicornr   r6  r   rB   rW   rT   r   objectrF   rM   rK   <module>rQ     s       12  . % % % % % % % % % % % % 				  



              
A A a	
 
2 A 
1 A A  a A A b b  b!" b#$ +   2  %9+66 ()(	
 
 ")	
 
 " -"(
 
 -"(
 
  	M/(
 
?& &R: : :       .+$ +$ +$\u u u u uV u u u u urM   