← Back
Editing: _file.cpython-38.pyc
U W[� � @ sx d Z ddlmZ ddlmZmZ ddlmZ ddlm Z ddlm Z ddlmZ ee�G d d � d e��Z e fdd�Zd S )z File log observer. � )�implementer)�ioType�unicode� )�ILogObserver�� formatTime)�timeFormatRFC3339��formatEventAsClassicLogTextc @ s e Zd ZdZdd� Zdd� ZdS )�FileLogObserverz9 Log observer that writes to a file-like object. c C s* t |�tk rd| _nd| _|| _|| _dS )a� @param outFile: A file-like object. Ideally one should be passed which accepts L{unicode} data. Otherwise, UTF-8 L{bytes} will be used. @type outFile: L{io.IOBase} @param formatEvent: A callable that formats an event. @type formatEvent: L{callable} that takes an C{event} argument and returns a formatted event as L{unicode}. zutf-8N)r r � _encoding�_outFile�formatEvent)�self�outFiler � r �6/usr/lib/python3/dist-packages/twisted/logger/_file.py�__init__ s zFileLogObserver.__init__c C sJ | � |�}|dkrd}| jdk r,|�| j�}|rF| j�|� | j�� dS )zd Write event to file. @param event: An event. @type event: L{dict} N� )r r �encoder �write�flush)r �event�textr r r �__call__+ s zFileLogObserver.__call__N)�__name__� __module__�__qualname__�__doc__r r r r r r r s r c s � fdd�}t | |�S )aa Create a L{FileLogObserver} that emits text to a specified (writable) file-like object. @param outFile: A file-like object. Ideally one should be passed which accepts L{unicode} data. Otherwise, UTF-8 L{bytes} will be used. @type outFile: L{io.IOBase} @param timeFormat: The format to use when adding timestamp prefixes to logged events. If L{None}, or for events with no C{"log_timestamp"} key, the default timestamp prefix of C{u"-"} is used. @type timeFormat: L{unicode} or L{None} @return: A file log observer. @rtype: L{FileLogObserver} c s t | � fdd�d�S )Nc s t | � �S )Nr )�e�� timeFormatr r �<lambda>S � z:textFileLogObserver.<locals>.formatEvent.<locals>.<lambda>r r )r r! r r r Q s �z(textFileLogObserver.<locals>.formatEvent)r )r r"