_4i: ldZddlZddlmZddlmZddlmZ d dedeeded ejfd Z y) zLogging setup module for DaemonControl. This module provides logging configuration with file rotation support for both daemon logs and job execution logs. N)TimedRotatingFileHandler)Path)Optionalnamelog_filelevelreturncltj|}tt|jtj}|j ||j r|Stjdd}tj}|j ||j||j||rkt|}|jjddt|dddd }|j ||j||j|d |_|S) aSetup logger with rotation. Creates a logger with optional file output and console output. File logs use daily rotation for manageability. Args: name: Logger name (typically module or component name) log_file: Path to log file (if None, console only) level: Log level (DEBUG, INFO, WARNING, ERROR, CRITICAL) Returns: Configured logger instance Example: >>> logger = setup_logger('daemon', '/var/log/daemon.log', 'INFO') >>> logger.info('Daemon started') zN%(asctime)s | %(levelname)-8s | %(name)s:%(funcName)s:%(lineno)d | %(message)sz%Y-%m-%d %H:%M:%S)datefmtT)parentsexist_okmidnightzutf-8)filenamewheninterval backupCountencodingF)logging getLoggergetattrupperINFOsetLevelhandlers Formatter StreamHandler setFormatter addHandlerrparentmkdirr propagate) rrrlogger numeric_level formatterconsole_handlerlog_path file_handlers 5/mnt/ssd/data/python-lab/DaemonControl/core/logger.py setup_loggerr+ s.  t $FGU[[]GLLAM OOM" !!X#I ++-O]+  + o&>dT:0   m,!!),,'F M)Nr) __doc__rlogging.handlersrpathlibrtypingrstrLoggerr+r,r*r4sV 5 #B BsmB B ^^ Br,