
    /h#                     *   d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZmZ ddlmZ ddlmZ dZej         !                    dd          Z" G d de          Z# G d d          Z$dS )zLogging configuration.

The Celery instances logging section: ``Celery.log``.

Sets up logging for the worker and other programs,
redirects standard outs, colors log output, patches logging
related compatibility fixes, and so on.
    N)WatchedFileHandler)set_default_encoding_file)signals)get_current_task)CDeprecationWarningCPendingDeprecationWarning)class_property)isatty)ColorFormatterLoggingProxy
get_loggerget_multiprocessing_loggermlevelreset_multiprocessing_logger)node_format)colored)TaskFormatterLoggingMP_LOGFc                   "     e Zd ZdZ fdZ xZS )r   z1Formatter for tasks, adding the task name and id.c                 8   t                      }|r3|j        r,|j                            |j        j        |j                   n6|j                            dd           |j                            dd           t                                          |          S )N)task_id	task_namer   z???r   )	r   request__dict__updateidname
setdefaultsuperformat)selfrecordtask	__class__s      R/var/www/html/e360mart/e360mart_env/lib/python3.11/site-packages/celery/app/log.pyr!   zTaskFormatter.format#   s    !! 	9DL 	9O""4<?-1Y # 8 8 8 8 O&&{E:::O&&y%888ww~~f%%%    )__name__
__module____qualname____doc__r!   __classcell__)r%   s   @r&   r   r       s>        ;;& & & & & & & & &r'   r   c                       e Zd ZdZdZd Z	 	 ddZddZ	 	 dd	Zd
 Z		 	 ddZ
	 	 ddZddZddZefdZddZd Zd ZddZed             Zej        d             ZdS ) r   z$Application logging setup (app.log).Fc                     || _         t          t          j                  | _        | j         j        j        | _        | j         j        j        | _	        | j         j        j
        | _        d S N)appr   loggingWARNloglevelconfworker_log_formatr!   worker_task_log_formattask_formatworker_log_colorcolorize)r"   r0   s     r&   __init__zLogging.__init__6   sI    w|,,hm58=?6r'   NWARNINGc                    t          |          }|                     ||||          }|s|r|                     |           t          j                            |rt          |          nd|rt          |          nd           t          j        dt                     t          j        dt                     t          j        d           |S )N)r9   hostname )CELERY_LOG_LEVELCELERY_LOG_FILEalways)categoryT)r   setup_logging_subsystemredirect_stdoutsosenvironr   strwarningsfilterwarningsr   r   r1   captureWarnings)r"   r3   logfilerD   redirect_levelr9   r=   handleds           r&   setupzLogging.setup=   s    (##..g8 / 
 
  	2+ 	2!!.111

.6>S]]]B,3;CLLL 	 	
 	
 	
 	3FGGGG3MNNNN%%%r'   celery.redirectedc                     |                      t          |          |           t          j                            dt          |pd                     d S )N)r3   1r>   )CELERY_LOG_REDIRECTCELERY_LOG_REDIRECT_LEVEL)redirect_stdouts_to_loggerr   rE   rF   r   rG   )r"   r3   r   s      r&   rD   zLogging.redirect_stdoutsN   si    ''tx 	( 	
 	
 	
 	
 #&)(.b&9&9 	 	
 	
 	
 	
 	
r'   c                    | j         rd S |r|rt          ||          }dt          _        t	          |p| j                  }|p| j        }|                     ||          }t                       t          j
                            d ||||          }|st          j                    }| j        j        j        rCg |_        g t%          d          _        g t%          d          _        g t%          d          _         | j        |||||fi |  | j        t)                      |t*          r|nt          j        ||fi | t          j                            d |||||           |                     |||           	 t          j                    j        d         j        }	t5          |	           n# t6          t8          f$ r Y nw xY wt;          |t<                    r|nd	}
t>          j         !                    t=          |          |
|
           |S )NT)senderr3   rK   r!   r9   celerycelery.taskrO   rV   loggerr3   rK   r!   r9   )r9   r   r>   )_MP_FORK_LOGLEVEL__MP_FORK_LOGFILE__MP_FORK_LOGFORMAT_)"already_setupr   r   _setupr   r3   r!   supports_colorr   r   setup_loggingsendr1   	getLoggerr0   r4   worker_hijack_root_loggerhandlersr   _configure_loggerr   r   ERRORafter_setup_loggersetup_task_loggersstreamr   AttributeError
IndexError
isinstancerG   rE   rF   r   )r"   r3   rK   r!   r9   r=   kwargs	receiversrootrj   logfile_names              r&   rC   zLogging.setup_logging_subsystemW   sm    	F 	5x 	5!'844G(3dm44&4;&&x99$&&&)..(GH / 
 
	
  	J$&&Dx}6 > "02
8$$-57
=))2;=
.//8 #D"gx =C  
 #D"*,,V>  %+   &++D!7 ,    ##Hg#III	.&((1!4;F &f---- 
+ 	 	 	D	 #-Wc":":Bww

S]],8.4 	 	6 	6 	6 s   ;#F. .GGc                 b    |* | j         ||||fi | |r|                    |           d S d S d S r/   )setup_handlerssetLevel)r"   rZ   rK   r3   r!   r9   rn   s          r&   rf   zLogging._configure_logger   sg    D (4 4,24 4 4 *)))))	 * *r'   c                 V   t          |p| j                  }|p| j        }|                     ||          } | j        t          d          |||fdt          i|}|                    |           t          |          |_	        t          j                            d|||||           |S )zSetup the task logger.

        If `logfile` is not specified, then `sys.stderr` is used.

        Will return the base task logger object.
        rX   	formatterNrY   )r   r3   r7   r`   rs   r   r   rt   int	propagater   after_setup_task_loggerrb   )r"   r3   rK   r!   r9   rx   rn   rZ   s           r&   ri   zLogging.setup_task_loggers   s     (3dm44+4+&&x99$$}%%VX
 
 $
 (.
 

 	!!!y>>',,wH 	- 	
 	
 	

 r'   Tc                 ^    t          ||          }|r|t          _        |r|t          _        |S )a  Redirect :class:`sys.stdout` and :class:`sys.stderr` to logger.

        Arguments:
            logger (logging.Logger): Logger instance to redirect to.
            loglevel (int, str): The loglevel redirected message
                will be logged as.
        )r   sysstdoutstderr)r"   rZ   r3   r|   r}   proxys         r&   rT   z"Logging.redirect_stdouts_to_logger   s6     VX.. 	CJ 	CJr'   c                 z    || j         n|}| j        j        rdS |s||d u ot          t          j                  S |S )NF)r9   r0   
IS_WINDOWSr
   r{   r}   )r"   r9   rK   s      r&   r`   zLogging.supports_color   sQ    $,$44==(8 	5 	:x' d?9vcj'9'99r'   c                 J    t          |                     ||                    S )N)enabled)r   r`   )r"   rK   r   s      r&   r   zLogging.colored   s#    t227GDDEEEEr'   c                     |                      |          r|S |                     |          }|                     |||                     |                    |           |S )N)	use_color)_is_configured_detect_handlersetFormatter
addHandler)r"   rZ   rK   r!   r9   rv   rn   handlers           r&   rs   zLogging.setup_handlers   sl    v&& 	M&&w//YYvBBBCCC'"""r'   c                     |t           j        n|}t          |d          rt          j        |          S t          |d          S )z@Create handler from filename, an open stream or `None` (stderr).Nwritezutf-8)encoding)r{   
__stderr__hasattrr1   StreamHandlerr   )r"   rK   s     r&   r   zLogging._detect_handler   sG    $+O#..7G$$ 	2(111!'G<<<<r'   c                 B    t          d |j        pg D                       S )Nc              3   L   K   | ]}t          |t          j                   V   d S r/   )rm   r1   NullHandler).0hs     r&   	<genexpr>z'Logging._has_handler.<locals>.<genexpr>   sF       
 
 1g1222
 
 
 
 
 
r'   )anyre   r"   rZ   s     r&   _has_handlerzLogging._has_handler   s7     
 
_*
 
 
 
 
 	
r'   c                 P    |                      |          ot          |dd           S )N_rudimentary_setupF)r   getattrr   s     r&   r   zLogging._is_configured   s6      (( 1(%21 21 .1 	1r'   rW   c                      t          |          S r/   )r   )r"   r   rn   s      r&   get_default_loggerzLogging.get_default_logger   s    $r'   c                     | j         S r/   r_   )r"   s    r&   r^   zLogging.already_setup   s
    {r'   c                     || _         d S r/   r   )r"   	was_setups     r&   r^   zLogging.already_setup   s    r'   )NNFr;   NN)NrO   )NNNNN)NNNNF)NTT)NNr/   )rW   )r(   r)   r*   r+   r_   r:   rN   rD   rC   rf   ri   rT   r`   r   r   rs   r   r   r   r   r	   r^   setter r'   r&   r   r   .   s       ..
 F7 7 7 CH@D   "
 
 
 
 KO8<; ; ; ;z* * * FJ49   6 ;?7;    	 	 	 	F F F F "0   = = = =
 
 
1 1 1          ^          r'   r   )%r+   r1   rE   r{   rH   logging.handlersr   kombu.utils.encodingr   rW   r   celery._stater   celery.exceptionsr   r   celery.localr	   celery.platformsr
   celery.utils.logr   r   r   r   r   r   celery.utils.nodenamesr   celery.utils.termr   __all__rF   getr   r   r   r   r'   r&   <module>r      s     				 



  / / / / / / : : : : : :       * * * * * * M M M M M M M M ' ' ' ' ' ' # # # # # #< < < < < < < < < < < < < < < < . . . . . . % % % % % %
&	%	(	(& & & & &N & & &J  J  J  J  J  J  J  J  J  J r'   