o
    BZœcÝ
  ã                   @   sŠ   d dl Z d dlZd dlmZ zd dlmZ W n ey!   eZY nw d dlm	Z	m
Z
mZmZmZmZmZmZ e  e¡ZG dd„ deƒZdS )é    N)Úsettings)ÚMiddlewareMixin)ÚlocalÚREQUEST_ID_HEADER_SETTINGÚLOG_REQUESTS_SETTINGÚDEFAULT_NO_REQUEST_IDÚ"REQUEST_ID_RESPONSE_HEADER_SETTINGÚ,GENERATE_REQUEST_ID_IF_NOT_IN_HEADER_SETTINGÚLOG_REQUESTS_NO_SETTINGÚLOG_USER_ATTRIBUTE_SETTINGc                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚRequestIDMiddlewarec                 C   s   |   |¡}|t_||_d S ©N)Ú_get_request_idr   Ú
request_idÚid)ÚselfÚrequestr   © r   úO/var/www/chikooza/env/lib/python3.10/site-packages/log_request_id/middleware.pyÚprocess_request   s   

z#RequestIDMiddleware.process_requestc                 C   sn   t |dd ƒ}t ttdƒ}|rt ||d ƒ}nt |dd ƒp t |dd ƒ}d|j|j|jf }|r5|dt|ƒ 7 }|S )NÚuserFÚpkr   zmethod=%s path=%s status=%sz user=)Úgetattrr   r   ÚmethodÚpathÚstatus_codeÚstr)r   r   Úresponser   Úuser_attributeÚuser_idÚmessager   r   r   Úget_log_message   s   z#RequestIDMiddleware.get_log_messagec                 C   sx   t ttdƒrt |dd ƒr|j|t ttƒ< t ttdƒs|S d|jv r#|S t |  ||¡¡ zt	`
W |S  ty;   Y |S w )NFr   Úfavicon)r   r   r   r   r   r   ÚloggerÚinfor!   r   r   ÚAttributeError)r   r   r   r   r   r   Úprocess_response$   s   
ýýz$RequestIDMiddleware.process_responsec                 C   sJ   t ttd ƒ}t ttdƒ}|r!t tttƒ}|r|  ¡ }|j ||¡S |  ¡ S )NF)	r   r   r   r	   r
   r   Ú_generate_idÚMETAÚget)r   r   Úrequest_id_headerÚ!generate_request_if_not_in_headerÚdefault_request_idr   r   r   r   8   s   z#RequestIDMiddleware._get_request_idc                 C   s
   t  ¡ jS r   )ÚuuidÚuuid4Úhex)r   r   r   r   r'   K   s   
z RequestIDMiddleware._generate_idN)Ú__name__Ú
__module__Ú__qualname__r   r!   r&   r   r'   r   r   r   r   r      s    r   )Úloggingr-   Údjango.confr   Údjango.utils.deprecationr   ÚImportErrorÚobjectÚlog_request_idr   r   r   r   r   r	   r
   r   Ú	getLoggerr0   r#   r   r   r   r   r   Ú<module>   s    ÿ(
