
    =e1
                        d Z ddlmZ dgZddlZddlZddlZddlZddl	Z	ddl
ZddlmZ 	 dddZ G d dej                  Zej        ddfddZdS )z3Utilities to configure logging for the application.    )annotationssetup_loggingN   )configFloggerlogging.Loggershow_tracebackboolreturnhtyping.Callable[[typing.Type[BaseException], BaseException, typing.Optional[types.TracebackType]], None]c                     d
 fd	}|S )z:Generate custom exception hook to log captured exceptions.exc_typetyping.Type[BaseException]	exc_valueBaseExceptionexc_traceback$typing.Optional[types.TracebackType]r   Nonec                    t          | t                    rd S r                    d| ||f           d S                     d|           d S )N )exc_infoz%s)
issubclassKeyboardInterrupterror)r   r   r   r   r	   s      Blib/python3.11/site-packages/binstar_client/utils/logging_utils.py
excepthookz&_custom_excepthook.<locals>.excepthook   sb    
 h 122 	F 	*LLxM&JLKKKKKLLy)))))    )r   r   r   r   r   r   r   r    )r   r	   r   s   `` r   _custom_excepthookr      s/    

* 
* 
* 
* 
* 
* 
* r   c                  P     e Zd ZU dZdZded<   ej        diZded<   d fdZ	 xZ
S )ConsoleFormatterzCustom logging formatter.z[%(levelname)s] %(message)sztyping.Final[str]FORMAT_DEFAULTz%(message)sz&typing.Final[typing.Mapping[int, str]]FORMAT_CUSTOMrecordlogging.LogRecordr   strc                    | j                             |j        | j                  | j        _        t                                          |          S )z%Format log record before printing it.)r#   getlevelnor"   _style_fmtsuperformat)selfr$   	__class__s     r   r-   zConsoleFormatter.format.   s=      -11&.$BUVVww~~f%%%r   )r$   r%   r   r&   )__name__
__module____qualname____doc__r"   __annotations__loggingINFOr#   r-   __classcell__)r/   s   @r   r!   r!   (   sn         ##(ENEEEE=D\=<YMYYYY& & & & & & & & & &r   r!   	log_levelintdisable_ssl_warningsr   c                   |                      t          j                   t          j        t
          j        d           t          j                            t
          j        d          }t          j	        
                    |dd          }|                     t          j                   |                    t          j        d                     |                     |           t          j                    }|                     |           |                    t                                 |                     |           t!          | |          t"          _        |r%t'          j        t&          j        j                   d	S d	S )
z&Configure logging for the application.T)exist_okzcli.logi      )maxBytesbackupCountz3%(asctime)s %(levelname)-8s %(name)-15s %(message)s)r	   N)setLevelr5   DEBUGosmakedirsr   USER_LOGDIRpathjoinhandlersRotatingFileHandlersetFormatter	Formatter
addHandlerStreamHandlerr!   r   sysr   urllib3disable_warnings
exceptionsInsecureRequestWarning)r   r8   r	   r:   log_filefile_handlerconsole_handlers          r   r   r   5   sR    OOGM"""K"T2222GLL!3Y??H$+$4$H$H! %I % %L
 '-(((g/0effggg
l###'.'<'>'>OY'''  !1!3!3444
o&&&'~NNNCN L !3!JKKKKKL Lr   )F)r   r   r	   r
   r   r   )
r   r   r8   r9   r	   r
   r:   r
   r   r   )r3   
__future__r   __all__logging.handlersr5   rB   rM   typestypingurllib3.exceptionsrN   r   r   r   rJ   r!   r6   r   r   r   r   <module>r[      s    : 9 " " " " " "
     				 



            
  %    (
& 
& 
& 
& 
&w( 
& 
& 
& !$%*	L L L L L L Lr   