
    hF                     :   U 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Zedu r ej                  d        e ej                  dd            Z
 ej                  dd	      Z eeej                               Zeed
<    ej"                         Zej'                  e        G d de      Zd Ze
r$ej-                   e               e e              n% ej
                  dd      Zej-                  e        ej0                  d      Z ej0                  d      Z ej0                  d      Zej9                  e       ej9                  e       ej9                  e        ej0                         eeegZdej<                  fdZd Z d Z!d Z"d Z#d Z$defdZ%y)    N)datetime)	FormatterFTze`litellm.set_verbose` is deprecated. Please set `os.environ['LITELLM_LOG'] = 'DEBUG'` for debug logs.	JSON_LOGSLITELLM_LOGDEBUGnumeric_levelc                   ,     e Zd Z fdZddZd Z xZS )JsonFormatterc                 *    t         t        |           y N)superr
   __init__)self	__class__s    L/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/_logging.pyr   zJsonFormatter.__init__   s    mT+-    c                 `    t        j                  |j                        }|j                         S r   )r   fromtimestampcreated	isoformat)r   recorddatefmtdts       r   
formatTimezJsonFormatter.formatTime   s"    ##FNN3||~r   c                     |j                         |j                  | j                  |      d}|j                  r| j	                  |j                        |d<   t        j                  |      S )N)messagelevel	timestamp
stacktrace)
getMessage	levelnamer   exc_infoformatExceptionjsondumps)r   r   json_records      r   formatzJsonFormatter.format   s[    ((*%%0
 ??(,(<(<V__(MK%zz+&&r   r   )__name__
__module____qualname__r   r   r'   __classcell__)r   s   @r   r
   r
      s    .

'r   r
   c                     t        j                         j                  |        fd}|t        _        	 dd l}fd}|j                         j                  |       y # t        $ r Y y w xY w)Nc                     t        j                  dt         j                  ddt        |      d| ||f      }j	                  |       y )NLiteLLM r    namer   pathnamelinenomsgargsr"   )logging	LogRecordERRORstrhandle)exc_type	exc_valueexc_tracebackr   error_handlers       r   json_excepthookz7_setup_json_exception_handlers.<locals>.json_excepthook3   sG    ""--I	=9
 	V$r   r   c           	          |j                  d      }|rEt        j                  dt        j                  ddt	        |      dd       }j                  |       y | j                  |       y )N	exceptionr.   r/   r   r0   r1   )getr7   r8   r9   r:   r;   default_exception_handler)loopcontextrB   r   r?   s       r   async_json_exception_handlerzD_setup_json_exception_handlers.<locals>.async_json_exception_handlerE   s_    K0I **"!--I! $$V,..w7r   )	r7   StreamHandlersetFormattersys
excepthookasyncioget_event_loopset_exception_handler	Exception)	formatterr@   rL   rG   r?   s       @r   _setup_json_exception_handlersrQ   -   sf    ))+My)
% %CN	8  	 667ST s   (A! !	A-,A-zT[92m%(asctime)s - %(name)s:%(levelname)s[0m: %(filename)s:%(lineno)s - %(message)sz%H:%M:%S)r   zLiteLLM ProxyzLiteLLM Routerr.   handlerc                 ~    t         D ]4  }|j                  j                          |j                  |        d|_        6 y)z
    Initialize all loggers with a handler

    - Adds a handler to each logger
    - Prevents bubbling to parent/root (critical to prevent duplicate JSON logs)
    FN)ALL_LOGGERShandlersclear
addHandler	propagate)rR   lgs     r    _initialize_loggers_with_handlerrZ   w   s1     

g r   c                      t        j                         } | j                  t                      t	        |        t        t                      y)zJ
    Turn on JSON logging

    - Adds a JSON formatter to all loggers
    N)r7   rH   rI   r
   rZ   rQ   )rR   s    r   _turn_on_jsonr\      s4     ##%G)$W-"=?3r   c                      t         j                  t        j                         t        j                  t        j                         t
        j                  t        j                         y )N)r   )verbose_loggersetLevelr7   r   verbose_router_loggerverbose_proxy_loggerr0   r   r   _turn_on_debugrb      sA    '--0"""7!!!6r   c                  F    dt         _        dt        _        dt        _        y )NTr^   disabledr`   ra   r0   r   r   _disable_debuggingrf      s    "N%)"$(!r   c                  F    dt         _        dt        _        dt        _        y )NFrd   r0   r   r   _enable_debuggingrh      s    #N%*"$)!r   c                 H    	 t         rt        |        y y # t        $ r Y y w xY wr   )set_verboseprintrO   )print_statements    r   print_verboserm      s)    /"  s    	!!returnc                  \    t         j                  t        j                        st        du ryy)z)
    Returns True if debugging is on
    TF)r^   isEnabledForr7   r   rj   r0   r   r   _is_debugging_onrq      s#     ""7==1[D5Hr   )&r$   r7   osrJ   r   r   rj   warningboolgetenv	json_logs	log_levelgetattrupperr   r:   __annotations__rH   rR   r_   r
   rQ   rI   rP   	getLoggerra   r`   r^   rW   rT   HandlerrZ   r\   rb   rf   rh   rm   rq   r0   r   r   <module>r}      s     	 
  $GOOo ;./	BIImW-	Wioo&78s 8
'


!    'I '.*\ )"=?3!!!dI
 #(w((9 )))*:; """9-      )    (   ' " G	
goo 

47)*$ r   