
    x-j                         d dl Z d dlZd dlZd dlmZ d dlZd dlmZ  ede          a	d Z
d Zd Zd Z G d	 d
e j                  ZddZdad Zd ZddZdS )    N)RotatingFileHandler)
get_loggerINFOc                    t          | t          t          f          s
J d            t          | t                    rt                              |            dS t                              |                                            dS )af  
    Set log level

    Args:
        level (str|int): a specified level

    Example 1:
        import paddle
        import paddle.distributed.fleet as fleet
        fleet.init()
        fleet.setLogLevel("DEBUG")

    Example 2:
        import paddle
        import paddle.distributed.fleet as fleet
        fleet.init()
        fleet.setLogLevel(1)

    zlevel's type must be str or intN)
isinstancestrintloggersetLevelupperlevels    g/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddle/distributed/fleet/utils/log_util.pyset_log_levelr      sq    ( ec3Z((KK*KKK(% '&&&&&    c                  4    t                                           S )z'
    Return current log level code
    )r
   getEffectiveLevel r   r   get_log_level_coder   5   s     ##%%%r   c                  B    t          j        t                                S )z'
    Return current log level name
    )logginggetLevelNamer   r   r   r   get_log_level_namer   <   s      2 4 4555r   c                     | dz   }|r)|d                     d |D                       z  }|r|dz  }|r4|d                     d |                                D                       z  }|dz  }|S )N(z, c              3   4   K   | ]}t          |          V  d S N)r   ).0args     r   	<genexpr>zlayer_to_str.<locals>.<genexpr>F   s(      33s#c((333333r   c              3   *   K   | ]\  }}| d | V  dS )=Nr   )r   keyvalues      r   r    zlayer_to_str.<locals>.<genexpr>J   s4      LLzsES**5**LLLLLLr   ))joinitems)baseargskwargsnames       r   layer_to_strr,   C   s    #:D 		33d333333 	DLD M		LLV\\^^LLLLLLCKDKr   c                   6     e Zd Zej        f fd	Z fdZ xZS )DistributedLoggerc                 L    t                                          ||           d S r   )super__init__)selfr+   r   	__class__s      r   r1   zDistributedLogger.__init__P   s#    u%%%%%r   c                     t           j                                          t                      j        d| g|R i | d S )NzDistributed Debug: )paddledevicesynchronizer0   info)r2   msgr)   r*   r3   s       r   r8   zDistributedLogger.infoS   sL    !!###0300B4BBB6BBBBBr   )__name__
__module____qualname__r   NOTSETr1   r8   __classcell__)r3   s   @r   r.   r.   O   sd        #*> & & & & & &C C C C C C C C Cr   r.   rootc                    t          |dz   |           }d|_        t          t          j        dd                    }t          j                            t          j                    d          }t          j        |d           t          j                            |d	| d
          }t          |dd          }t          j        d          }|                    |           |                    |           |S )N_rotater   FFLAGS_selected_gpus0hybrid_parallelT)exist_okworker_z.logl           )maxBytesbackupCountzG[%(asctime)-15s] [%(levelname)8s] %(filename)s:%(lineno)s - %(message)s)r.   	propagater	   osgetenvpathr&   getcwdmakedirsr   r   	FormattersetFormatter
addHandler)	log_levelr+   distributed_logger	device_idlog_dirrM   handler
log_formats           r   get_rotate_file_loggerrY   X   s    *4)+;9MMM#( BI3S99::Igll29;;(9::GK$''''7<<!:9!:!:!:;;D!'  G "Q J $$$!!'***r   c                  L    t           j                                         t          S r   )r5   r6   r7   r
   r   r   r   get_sync_loggerr[   r   s    
MMr   c                  H    t           t          dt                    a t           S )Nr   )g_sync_rotate_loggerrY   r:   r   r   r   sync_rotate_loggerr^   x   s    #5fhGGr    c                 `   d}i }t           j        j                                        |z  |d<   t           j        j                                        |z  |d<   t           j        j                                        |z  |d<   t           j        j                                        |z  |d<   d|  d}|D ]}|d| d	||          d
z  }t                              |           t          t           j        j        d          ri }t           j        j        
                                |z  |d<   t           j        j                                        |z  |d<   t           j        j                                        |z  |d<   t           j        j                                        |z  |d<   d|  d}|D ]}|d| d	||          d
z  }t                              |           t          t           j        d          rt          t           j        j        d          ri }t           j        j                                        |z  |d<   t           j        j                                        |z  |d<   t           j        j                                        |z  |d<   t           j        j                                        |z  |d<   d|  d}|D ]}|d| d	||          d
z  }t                              |           t          j        ddgdd          }|j                                                            d          }|d                                         }|d                                         }d|  d|d          d|d          d|d          d|d          
}	t                              |	           d S )Ng      Amax_memory_allocated_sizemax_memory_reserved_sizememory_allocated_sizememory_reserved_sizezchecking gpu memory usage :
z: GBmax_pinned_memory_allocatedzchecking pinned memory usage cpumax_memory_allocatedzchecking cpu memory usage freez-hT)capture_outputtext      zchecking CPU memory usage: z Memory - Total: z, Used: z, Free: rG   z Available:)r5   r6   cudarj   max_memory_reservedmemory_allocatedmemory_reservedr
   r8   hasattrrh   max_pinned_memory_reservedpinned_memory_allocatedpinned_memory_reservedri   
subprocessrunstdoutstripsplit)
r9   rg   mem_dictmem_msgr#   resultlinesmem_data	swap_dataformatted_outputs
             r   check_memory_usager      s   	!BH//11B6 () 	..0025 '( 	++--2 $% (.}'9'I'I'K'Kb'PH#$13111G 1 1000x}0000
KKv}!#@AA M::<<rA 	,- M99;;b@ 	+, M66882= 	() M5577"< 	'( 9#888 	5 	5C4C448C=4444GGGv}e$$ 1* *  M2244r9 	,- M1133b8 	+, M..0025 	() M--//"4 	'( 6s555 	5 	5C4C448C=4444GGG ^VTN4dKKKFM!!''--E Qx~~Ha  I \S  \  \8TU;  \  \`hij`k  \  \u}~  vA  \  \  NV  WY  NZ  \  \
KK !!!!!r   )r?   )r_   )r   rK   ry   logging.handlersr   r5   "paddle.distributed.utils.log_utilsr   r:   r
   r   r   r   r,   Loggerr.   rY   r]   r[   r^   r   r   r   r   <module>r      s1    				     0 0 0 0 0 0  9 9 9 9 9 9	FH	%	%' ' '6& & &6 6 6	 	 	C C C C C C C C   .         D" D" D" D" D" D"r   