
    Αi                         S SK r S SKrS SKrS SKJr  S SKrS SKJr  \" S\5      q	S r
S rS rS r " S	 S
\ R                  5      rSS jrSqS rS rSS jrg)    N)RotatingFileHandler)
get_loggerINFOc                     [        U [        [        45      (       d   S5       e[        U [        5      (       a  [        R	                  U 5        g[        R	                  U R                  5       5        g)a.  
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.13/site-packages/paddle/distributed/fleet/utils/log_util.pyset_log_levelr      sL    ( ec3Z((K*KK(%&    c                  *    [         R                  5       $ )z
Return current log level code
)r
   getEffectiveLevel r   r   get_log_level_coder   5   s     ##%%r   c                  >    [         R                  " [        5       5      $ )z
Return current log level name
)logginggetLevelNamer   r   r   r   get_log_level_namer   <   s      2 455r   c                     U S-   nU(       a'  USR                  S U 5       5      -  nU(       a  US-  nU(       a)  USR                  S UR                  5        5       5      -  nUS-  nU$ )N(z, c              3   8   #    U  H  n[        U5      v   M     g 7fN)r   ).0args     r   	<genexpr>layer_to_str.<locals>.<genexpr>F   s     3ds#c((ds   c              3   4   #    U  H  u  pU S U 3v   M     g7f)=Nr   )r   keyvalues      r   r    r!   J   s     L^zsSE5'*^s   ))joinitems)baseargskwargsnames       r   layer_to_strr-   C   sc    #:D		3d333DLD		LV\\^LLLCKDKr   c                   N   ^  \ rS rSr\R
                  4U 4S jjrU 4S jrSrU =r	$ )DistributedLoggerO   c                 $   > [         TU ]  X5        g r   )super__init__)selfr,   r   	__class__s      r   r3   DistributedLogger.__init__P   s    %r   c                 p   > [         R                  R                  5         [        TU ]  " SU 3/UQ70 UD6  g )NzDistributed Debug: )paddledevicesynchronizer2   info)r4   msgr*   r+   r5   s       r   r;   DistributedLogger.infoS   s1    !!#*3%0B4B6Br   r   )
__name__
__module____qualname____firstlineno__r   NOTSETr3   r;   __static_attributes____classcell__)r5   s   @r   r/   r/   O   s    #*>> &C Cr   r/   c                    [        US-   U S9nSUl        [        [        R                  " SS5      5      n[        R
                  R                  [        R                  " 5       S5      n[        R                  " USS9  [        R
                  R                  US	U S
35      n[        USSS9n[        R                  " S5      nUR                  U5        UR                  U5        U$ )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_dirrR   handler
log_formats           r   get_rotate_file_loggerr^   X   s    *4)+;9M#( BII3S9:Iggll299;(9:GKK$'77<<79+T!:;D!'G ""QJ $!!'*r   c                  J    [         R                  R                  5         [        $ r   )r8   r9   r:   r
   r   r   r   get_sync_loggerr`   r   s    
MMMr   c                  <    [         c  [        S[        5      q [         $ )Nr   )g_sync_rotate_loggerr^   r>   r   r   r   sync_rotate_loggerrc   x   s    #5fhGr   c                    Sn0 n[         R                  R                  R                  5       U-  US'   [         R                  R                  R	                  5       U-  US'   [         R                  R                  R                  5       U-  US'   [         R                  R                  R                  5       U-  US'   SU  S3nU H  nUSU S	X$    S
3-  nM     [        R                  U5        [        [         R                  R                  S5      (       a  0 n[         R                  R                  R                  5       U-  US'   [         R                  R                  R                  5       U-  US'   [         R                  R                  R                  5       U-  US'   [         R                  R                  R                  5       U-  US'   SU  S3nU H  nUSU S	X$    S
3-  nM     [        R                  U5        [        [         R                  S5      (       Ga  [        [         R                  R                  S5      (       a  0 n[         R                  R                  R                  5       U-  US'   [         R                  R                  R	                  5       U-  US'   [         R                  R                  R                  5       U-  US'   [         R                  R                  R                  5       U-  US'   SU  S3nU H  nUSU S	X$    S
3-  nM     [        R                  U5        [        R                   " SS/SSS9nUR"                  R%                  5       R'                  S5      nUS   R'                  5       nUS   R'                  5       nSU  SUS    SUS    SUS    SUS    3
n	[        R                  U	5        g )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: rL   z Available:)r8   r9   cudarn   max_memory_reservedmemory_allocatedmemory_reservedr
   r;   hasattrrl   max_pinned_memory_reservedpinned_memory_allocatedpinned_memory_reservedrm   
subprocessrunstdoutstripsplit)
r<   rk   mem_dictmem_msgr$   resultlinesmem_data	swap_dataformatted_outputs
             r   check_memory_usager      s   	!BH//1B6 () 	..025 '( 	++-2 $% (.}}'9'9'I'I'Kb'PH#$*3%q1GRuBx}oR00 
KKv}}!!#@AAMM::<rA 	,- MM99;b@ 	+, MM6682= 	() MM557"< 	'( 2#a8CC58=/44G Gv}}e$$1* * MM224r9 	,- MM113b8 	+, MM..025 	() MM--/"4 	'( /se15CC58=/44G G ^^VTN4dKFMM!''-E Qx~~Ha I 5SE9J8TU;-W_`hij`k_lltu}~  vA  uB  BM  NV  WY  NZ  M[  \
KK !r   )root) )r   rP   r}   logging.handlersr   r8   "paddle.distributed.utils.log_utilsr   r>   r
   r   r   r   r-   Loggerr/   r^   rb   r`   rc   r   r   r   r   <module>r      sh     	  0  9	FH	%'6&6	C C.   D"r   