
    i                     t    d Z ddlZddlZddlmZ  ee      j                  j                  dz  ZddeddfdZ	y)	u?  
Configuración centralizada de logging para la aplicación.

Genera dos archivos en logs/:
  - app.log      → todos los niveles (INFO+), rotado por tamaño (10 MB, 5 backups)
  - errors.log   → solo ERROR y CRITICAL, rotado por tamaño (5 MB, 3 backups)

Ambos handlers también escriben a stdout (StreamHandler).
    N)Pathlogs	log_levelreturnc                 ,   t         j                  d       t        t        | j	                         t        j
                        }t        j                  dd      }t        j                         }|j                  |       |j                  |       t        j                  j                  t         dz  ddd	
      }|j                  |       |j                  |       t        j                  j                  t         dz  ddd	
      }|j                  t        j                         |j                  |       t        j                         }|j                  |       |j                  s3|j                  |       |j                  |       |j                  |       t        j                  d      j                  t        j                         t        j                  d      j                  t        j                         t        j                  d      j                  t        j                         t        j                  d      j                  t        j                         t        j                  d      j                  t        j                         y)u   
    Configura el sistema de logging global.
    Debe llamarse una sola vez al arrancar la aplicación.

    Args:
        log_level: Nivel mínimo de logging ("DEBUG", "INFO", "WARNING", "ERROR")
    T)exist_okz6%(asctime)s | %(levelname)-8s | %(name)s | %(message)sz%Y-%m-%d %H:%M:%S)fmtdatefmtzapp.logi      zutf-8)filenamemaxBytesbackupCountencodingz
errors.logi  P    zneo4j.notificationshttpxhttpcoreopenai
watchfilesN)	_LOGS_DIRmkdirgetattrloggingupperINFO	FormatterStreamHandlersetLevelsetFormatterhandlersRotatingFileHandlerERROR	getLogger
addHandlerWARNING)r   numeric_level	formatterconsole_handlerapp_handlererror_handlerroot_loggers          1/opt/lhia/marcimex/agent/config/logging_config.pysetup_loggingr,      s    OOTO"GY__%6EM!!D#I ++-O]+  + ""66Y&!	 7 K 'Y' $$88\) 	 9 M 7==)y) ##%K' /{+}- +,55gmmDg''8j!**7??;h((9l#,,W__=    )r   )
__doc__r   logging.handlerspathlibr   __file__parentr   strr,    r-   r+   <module>r5      sD       N!!((61	9>S 9>d 9>r-   