U
    *iV                     @   sn   d Z ddlZddlZddlmZmZ ddlmZ ddlmZ ed Z	dZ
deejd	d
dZedddZdS )zOLogging setup: daily log file (DEBUG) + console (INFO) with 7-day auto-cleanup.    N)datetime	timedelta)Path)PROJECT_ROOTZlogs   seo_optimizer)namereturnc                 C   s   t jdd t| }|jr |S |tj t 	d}t d| d }tj
|dd}|tj t }|tj tjdd	d
}|| || || || |S )z,Configure and return the application logger.T)exist_ok%Y%m%d
daily_log_z.txtzutf-8)encodingz1%(asctime)s [%(levelname)s] %(name)s: %(message)sz%Y-%m-%d %H:%M:%S)datefmt)LOGS_DIRmkdirlogging	getLoggerhandlerssetLevelDEBUGr   nowstrftimeFileHandlerStreamHandlerINFO	FormattersetFormatter
addHandler)r   loggertodaylog_fileZfile_handlerZconsole_handler	formatter r"   4/opt/web_system/seo_auto/src/logging_setup/logger.pysetup_logger   s(    




r$   )r	   c               
   C   s   t  sdS t ttd } d}t dD ]Z}z8|jdd}t	|d}|| k rft
| |d7 }W q, ttfk
r   Y q,Y q,X q,|S )zODelete log files older than LOG_RETENTION_DAYS. Returns count of deleted files.r   )dayszdaily_log_*.txtr    r      )r   existsr   r   r   LOG_RETENTION_DAYSglobstemreplacestrptimeosremove
ValueErrorOSError)cutoffdeletedr    Zdate_strZ	file_dater"   r"   r#   cleanup_old_logs/   s    
r4   )r   )__doc__r   r.   r   r   pathlibr   src.config.settingsr   r   r)   strLoggerr$   intr4   r"   r"   r"   r#   <module>   s   !