B
    T[                 @   sV   d dl Z d dlZd dlZd dlZd dlZG dd deZG dd deZd	ddZdS )
    Nc               @   s   e Zd Zdd Zdd ZdS )JSONFormatterc             O   s,   | ddd | _tj| f|  || _d S )Ndumpsc             S   s   t j| dd dS )Nc             S   s   t | S )N)str)obj r   \lib/python3.7/site-packages/anaconda_client-1.7.2-py3.7.egg/binstar_client/utils/handlers.py<lambda>
   s    z:JSONFormatter.__init__.<locals>.<lambda>.<locals>.<lambda>)default)jsonr   )r   r   r   r   r   
   s    z(JSONFormatter.__init__.<locals>.<lambda>)popr   object__init__
extra_tags)selfargsr   r   r   r   r   	   s    zJSONFormatter.__init__c             C   s   t |jtr|j}n&t |jttfr0d|ji}n
d|ji}| j }|jf |j|j	|j
t d| |jr|j\}}}dt|||}d|d< ||d< | |}|S )Nitemsmsg)ZlogLevelZ	logModuleZlogNamepid
TZ	exception	traceback)
isinstancer   dictlisttupler   copyupdateZ	levelnamemodulenameosgetpidexc_infojoinr   format_exceptionr   )r   recorddatakwargsetypevaluetbr   r   r   r   format   s$    




zJSONFormatter.formatN)__name__
__module____qualname__r   r)   r   r   r   r   r      s   r   c               @   s   e Zd Zdd Zdd ZdS )JSONSysLogFormatterc             O   s   || _ tj| f|| d S )N)appNamer   r   )r   r.   r   r   r   r   r   r   *   s    zJSONSysLogFormatter.__init__c             C   s   t | |}d| j|f S )Nz%s %s)r   r)   r.   )r   r#   r   r   r   r   r)   .   s    zJSONSysLogFormatter.formatN)r*   r+   r,   r   r)   r   r   r   r   r-   )   s   r-   binstar-clientc             C   s   d }t jdrd}nDt jdr(d}n2d}ttjtj}y|| W n   t S tj	j
|d}|tj |t|  |S )Nz/dev/logz/var/run/syslog)Z	localhosti  )address)r   pathexistssocketZAF_INETZ
SOCK_DGRAMZconnectloggingZNullHandlerZhandlersZSysLogHandlerZsetLevelINFOZsetFormatterr-   )Zapp_namer0   sZhdlrr   r   r   syslog_handler3   s    r7   )r/   )	r4   r   r
   r   r3   r   r   r-   r7   r   r   r   r   <module>   s   "
