Team Ai
Apppublic

PCNUSMSE/transcript_service

sourceHugging Faceapache-2.0updated 1mo agoView on Hugging Face
0likes
logger.cpython-310.pyc77 linesDownload Raw Back to __pycache__
1o

2E��h��@s�dZddlZddlZddlZddlZddlmZddlmZm	Z	m3Z4ddlZzddlm
Z
ddlmZdZWneyAdZYnwd	d5lmZGdd�dej�ZGd
d�d�ZGdd�d�Ze�Zddedefdd�Zdde6ededefdd�ZdS)u]日志管理模块7 8提供结构化日志记录功能,支持任务跟踪和状态记录。9�N)�Path)�Any�Dict�Optional)�Console)�RichHandlerTF�)�10get_configcs(eZdZdZ�fdd�Zdd�Z�ZS)�TaskContextFilteruV任务上下文过滤器11    12    为日志记录添加任务ID上下文信息。13    cst���d|_dS)N�system)�super�__init__�task_id��self��	__class__��A/Users/chengpeng/MyProject/transcript_service/src/utils/logger.pyr
s1415zTaskContextFilter.__init__cCs>t|d�st|dd�|_dSt|dd�durt|dd�|_dS)u添加任务ID到日志记录rrNT)�hasattr�getattrr)r�recordrrr�filter"s16�zTaskContextFilter.filter)�__name__�17__module__�__qualname__�__doc__r
r�
__classcell__rrrrr18sr19c@s�eZdZdZddefdd�Zdd�Zdd	�Zd20efdd�Zd
d�Z	defdd�Z21defdd�Zdefdd�Zdefdd�Z
defdd�Zdefdd�ZdS)�Loggeru日志管理器�transcript_service�namecCs|||_t�|_|��t�|�|_t�|_|jj	D]}|�22|j�qt��}|j	D]}tdd�|jD��s;|�23|j�q)dS)uZ初始化日志管理器24        25        Args:26            name: 日志器名称27        css�|]}t|t�VqdS)N)�28isinstancer29)�.0�frrr�	<genexpr>Bs�z"Logger.__init__.<locals>.<genexpr>N)
r r	�config�_setup_logging�logging�	getLogger�loggerr30�task_filter�handlers�	addFilter�any�filters)rr �handler�root_loggerrrrr
/s31��zLogger.__init__cCs�|j��}|j��dd}|��rTt|ddd��
}t�|�}Wd�n1s)wY|�di���D]\}}d|vrKt	|t32|d�j�|d<q6tj�
|�dS|��dS)	u设置日志配置r%zlogging.yaml�r�utf-8)�encodingNr+�filename)r%�get_logs_dir�get_project_root�exists�open�yaml�	safe_load�get�items�strrr r'Z33dictConfig�_setup_default_logging)r�logs_dir�config_file�fileZlogging_configZhandler_nameZhandler_configrrrr&Es34��zLogger._setup_loggingcCs�trt�}t|dddd�}nt��}tjddd�}|�|�|�|jj	j35r(tjntj�|j�
�d}tjj|ddd	d36�}|�tj�tjddd�}|�|�t��}|�|jj	j37r]tjntj�|�|�|�|�dS)u设置默认日志配置T)�consoleZ	show_timeZ	show_path�markupz4[%(asctime)s] [%(levelname)s] [%(name)s] %(message)sz%Y-%m-%d %H:%M:%S)�datefmtzapp.logi��r2)ZmaxBytesZbackupCountr3N)�RICH_AVAILABLErrr'�
StreamHandler�	Formatter�setFormatter�setLevelr%�app�debug�DEBUG�INFOr5r+ZRotatingFileHandlerr(�38addHandler)rrBZconsole_handlerZconsole_formatter�log_fileZfile_handler�	formatterr0rrrr>[s@��39��4041zLogger._setup_default_loggingrcCs||j_dS�uR设置当前任务ID42        43        Args:44            task_id: 任务ID45        N�r*r�rrrrr�set_task_id�szLogger.set_task_idcCsd|j_dS)�清除当前任务IDrNrSrrrr�
clear_task_id�szLogger.clear_task_id�messagecK�|jj||d�dS)�记录调试信息��extraN�r)rL�rrX�kwargsrrrrL��zLogger.debugcKrY)�记录一般信息r[N�r)�infor^rrrrc�r`zLogger.infocKrY)�记录警告信息r[N�r)�warningr^rrrrf�r`zLogger.warningcKrY)�记录错误信息r[N�r)�errorr^rrrri�r`zLogger.errorcKrY)�记录严重错误r[N�r)�criticalr^rrrrl�r`zLogger.criticalcKrY)u*记录异常信息(包含堆栈跟踪)r[N�r)�	exceptionr^rrrrn�r`zLogger.exceptionN�r)rrrrr=r
r&r>rUrWrLrcrfrirlrnrrrrr,s,rc@s�eZdZdZddeedefdd�Zdd	�Zd46d�Zdefd
d�Z	defdd�Z47defdd�Zdefdd�Zdefdd�Z
defdd�Zdefdd�Zdd�ZdS)�48TaskLoggeruQ任务日志记录器49    50    为特定任务提供上下文日志记录。51    Nrr�logger_namecCs6|ptt���dd�|_t|�|_|j�|j�dS)u�初始化任务日志记录器52        53        Args:54            task_id: 任务ID,如果为None则自动生成55            logger_name: 基础日志器名称56        N�)r=�uuid�uuid4rrr)rU)rrrqrrrr
�s57zTaskLogger.__init__cCs|S)u进入上下文管理器rrrrr�	__enter__�szTaskLogger.__enter__cC�|j��dS)u退出上下文管理器N�r)rW)r�exc_type�exc_val�exc_tbrrr�__exit__��zTaskLogger.__exit__rXcK�|jj|fi|��dS)rZNr]r^rrrrL��zTaskLogger.debugcKr})raNrbr^rrrrc�r~zTaskLogger.infocKr})rdNrer^rrrrf�r~zTaskLogger.warningcKr})rgNrhr^rrrri�r~zTaskLogger.errorcKr})rjNrkr^rrrrl�r~zTaskLogger.criticalcKr})u记录异常信息Nrmr^rrrrn�r~zTaskLogger.exceptioncCs|j�|�dSrR)r)rUrTrrrrU�szTaskLogger.set_task_idcCrv)rVNrwrrrrrW�r|zTaskLogger.clear_task_id�Nr)rrrrrr=r
rur{rLrcrfrirlrnrUrWrrrrrp�srprr �returncCst|�S)uo获取日志实例58    59    Args:60        name: 日志器名称61        62    Returns:63        日志实例64    )r)r rrr�65get_logger�s	r�rrqcCs66t||�S)u�获取任务日志实例67    68    Args:69        task_id: 任务ID70        logger_name: 日志器名称71        72    Returns:73        任务日志实例74    )rp)rrqrrr�get_task_logger�s75 76r�ror)rr'Zlogging.configZlogging.handlersrs�pathlibr�typingrrrr9Zrich.consolerZrich.loggingrrF�ImportError�core.configr	�Filterr77rrpr)r=r�r�rrrr�<module>s.�?