
    j|                     N   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       d Z 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    i/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/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.   c                  <   t        j                  d      } | j                  t         j                         t        j                  d      }|j                  t         j                         t        j                  d      }|j                  t         j                         y)z$Suppress noisy loggers at INFO levelhttpxzapscheduler.executors.defaultzapscheduler.schedulerN)r7   	getLoggersetLevelWARNING)httpx_loggerapscheduler_executors_loggerapscheduler_scheduler_loggers      r   _suppress_loggersrZ   p   sp     $$W-L'//* $+#4#45T#U  ))'//:#*#4#45L#M  ))'//:r   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)r[   lgs     r    _initialize_loggers_with_handlerrc      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
   rc   rQ   )r[   s    r   _turn_on_jsonre      s4     ##%G)$W-"=?3r   c                      t         j                  t        j                         t        j                  t        j                         t
        j                  t        j                         y )N)r   )verbose_loggerrU   r7   r   verbose_router_loggerverbose_proxy_loggerr0   r   r   _turn_on_debugrj      sA    '--0"""7!!!6r   c                  F    dt         _        dt        _        dt        _        y )NTrg   disabledrh   ri   r0   r   r   _disable_debuggingrn      s    "N%)"$(!r   c                  F    dt         _        dt        _        dt        _        y )NFrl   r0   r   r   _enable_debuggingrp      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_verboseru      s)    /"  s    	!!returnc                  \    t         j                  t        j                        xs t        du S )z)
    Returns True if debugging is on
    T)rg   isEnabledForr7   r   rr   r0   r   r   _is_debugging_onry      s#     &&w}}5L9LLr   )'r$   r7   osrJ   r   r   rr   warningboolgetenv	json_logs	log_levelgetattrupperr   r:   __annotations__rH   r[   rU   r
   rQ   rI   rP   rT   ri   rh   rg   r`   rZ   r]   Handlerrc   re   rj   rn   rp   ru   ry   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)*M$ Mr   