o
    i                     @  s>   d Z ddlmZ ddlmZ ddlmZmZ G dd dZdS )z5Audit logging helpers for tenant and security events.    )annotations)Path)get_platform_loggerlog_structuredc                   @  s*   e Zd ZdZdddZdddddZdS )AuditLoggerz6Write audit events to platform and tenant log targets.returnNonec                 C  s   t d| _d S )Naudit)r   logger)self r    platform/logging/audit_logger.py__init__   s   zAuditLogger.__init__success)status	tenant_id
str | Noneactoractionstrr   c             	   K  s   t | jdf||||d| |rJtd| }|jddd |d jddd	}|| d
| d|p3d d W d    d S 1 sCw   Y  d S d S )Naudit_event)r   r   r   r   z'/var/www/html/flask_server/logs/tenantsT)parentsexist_okz	audit.logazutf-8)encoding|z|actor=unknown
)r   r
   r   mkdiropenwrite)r   r   r   r   r   fields
tenant_dirhandler   r   r   log   s$   	""zAuditLogger.logN)r   r   )
r   r   r   r   r   r   r   r   r   r   )__name__
__module____qualname____doc__r   r$   r   r   r   r   r   
   s    
r   N)	r(   
__future__r   pathlibr    platform.logging.platform_loggerr   r   r   r   r   r   r   <module>   s
    