o
    i                     @   s@   d dl Z d dlZd dlmZ d dlmZ d	dedefddZdS )
    N)datetime)logger stage	user_infoc           	      C   s   zVt t jj}|d }ddlm} | }t|ddd!}t 	d}|
| d|  d|d	d| d
 W d   n1 s@w   Y  td|  d|d	d|  W dS  tys } ztdt|  W Y d}~dS d}~ww )z
    Log memory usage to both CSV file and application logger.
    
    Args:
        stage (str): Current stage of execution (e.g., "script_start", "form_submitted")
        user_info (str, optional): Additional user information for context
    i   r   )make_memory_log_fileazutf-8)encodingz%Y-%m-%d %H:%M:%S,z.2f
NzMemory Usage at z: zMB zMemory logging failed: )resource	getrusageRUSAGE_SELF	ru_maxrssutils.make_memory_log_filer   openr   nowstrftimewriter   info	Exceptionerrorstr)	r   r   memory	memory_mbr   csv_file_pathfcurrent_timee r   :/var/www/html/status_management/src/utils/memory_logger.pylog_memory_usage   s   &$"r!   )r   )r   osr   utils.loggerr   r   r!   r   r   r   r    <module>   s
    