Your IP : 216.73.216.61
��YW( � @ s@ d Z d d l m Z d d l m Z Gd d � d e � Z d S)a�
Parse a typical nginx error log, such as:
2012/11/29 19:30:02
[error] 15596#0: *4 open() "/srv/active/collected-static/50x.html" failed
(2: No such file or directory),
client: 65.44.217.34,
server: ,
request: "GET /api/megapage/poll/?cursor=1354216956 HTTP/1.1",
upstream: "http://0.0.0.0:9000/api/megapage/poll/?cursor=1354216956",
host: "165.225.132.103",
referrer: "http://165.225.132.103/megapage/"
� )�Parser� )�NGINX_ERROR_PATHc s4 e Z d Z d Z � f d d � Z d d � Z � S)�NginxzNginx error logsc s t t | � j t � d S)N)�superr �__init__r )�self)� __class__� �I/opt/alt/python35/lib/python3.5/site-packages/sentrylogs/parsers/nginx.pyr s zNginx.__init__c C sR | j d � } | j d � j d d � } t � } xq | D]i } | j d d � } | d j � } t | � d k r� | d j � } | s� d } n d } | | | <q: Wd | d | _ d | _ | d | d | d | j d
d � | j d d � | j d d � | j d
d � | j d d � | j d d � g | _ | j d d � | _ d S)z#Parse a line of the Nginx error log�,� � r �:r �-z%szZ%s
Date: %s
Time: %s
Request: %s
Referrer: %s
Server: %s
Client: %s
Host: %s
Upstream: %s
�requestZreferrer�serverZclient�hostZupstreamN)
�split�pop�dict�strip�len�messageZextended_message�get�params�site) r �lineZcsv_listZdate_time_messageZ otherinfo�itemZkey_value_pair�key�valuer
r
r �parse s0
zNginx.parse)�__name__�
__module__�__qualname__�__doc__r r! r
r
)r r r s r N)r% � r Z
conf.settingsr r r
r
r
r �<module>
s