2013-08-28 32 views
0

我想解析服務器訪問日誌來查找4xx和5xx錯誤計數。但沒有獲得兩個時間戳之間的數據。某處在邏輯上出錯。python腳本來解析服務器日誌之間兩個不同的時間戳

時間戳甲酸日期/月/年/小時/分鐘/秒:27/8/2013:12:45:54

if time >= start_timestamp and time <= end_timestamp : 
     if check_point_flag == 0 : 
     start_time = request['request'].split(" ")[0].split('[')[1] 
     check_point_flag=1 
     total_patient_count, total_encounter_count = self.get_count_information(access_token, request , resource_name, total_patient_count, total_encounter_count) 
     count_patient_5xx ,count_encounter_5xx = self.get_count_information(access_token,request,resource_name,count_patient_5xx,count_encounter_5xx, '500', '600') 
     count_patient_4xx ,count_encounter_4xx = self.get_count_information(access_token,request, resource_name,count_patient_4xx,count_encounter_4xx, '400', '500')    
     count_patient_2xx ,count_encounter_2xx = self.get_count_information(access_token,request, resource_name,count_patient_2xx,count_encounter_2xx, '200', '300')    
     end_time = request['request'].split(" ")[0].split('[')[1] 

這裏是改變到groupdict()

{'status': '404', 'protocol': 'HTTP/1.0', 'request_time': '0.000', 'mongo_exec_time': '-', 'url': '/ready', 'request': '[19/Aug/2013:16:31:20 -0400]', 'hostname': 'xxxxxx', 'bytes_sent': '168', 'audit_response_time': '-', 'application': '-', 'user_agent': '-', 'upstream_response_time': '-', 'queries_count': '-', 'clientip': '12.255.25.13', 'hma_exec_time': '-', 'method': 'GET', 'user': '-'} 
{'status': '404', 'protocol': 'HTTP/1.0', 'request_time': '0.000', 'mongo_exec_time': '-', 'url': '/ready', 'request': '[19/Aug/2013:16:31:22 -0400]', 'hostname': ''xxxxxx', 'bytes_sent': '168', 'audit_response_time': '-', 'application': '-', 'user_agent': '-', 'upstream_response_time': '-', 'queries_count': '-', 'clientip': '13.255.25.13', 'hma_exec_time': '-', 'method': 'GET', 'user': '-'} 
{'status': '404', 'protocol': 'HTTP/1.0', 'request_time': '0.000', 'mongo_exec_time': '-', 'url': '/ready', 'request': '[19/Aug/2013:16:31:52 -0400]', 'hostname': ''xxxxxx', 'bytes_sent': '168', 'audit_response_time': '-', 'application': '-', 'user_agent': '-', 'upstream_response_time': '-', 'queries_count': '-', 'clientip': '13.255.25.13', 'hma_exec_time': '-', 'method': 'GET', 'user': '-'} 
{'status': '404', 'protocol': 'HTTP/1.0', 'request_time': '0.000', 'mongo_exec_time': '-', 'url': '/ready', 'request': '[19/Aug/2013:16:31:54 -0400]', 'hostname': ''xxxxxx', 'bytes_sent': '168', 'audit_response_time': '-', 'application': '-', 'user_agent': '-', 'upstream_response_time': '-', 'queries_count': '-', 'clientip': '13.255.25.13', 'hma_exec_time': '-', 'method': 'GET', 'user': '-'} 
{'status': '200', 'protocol': 'HTTP/1.1', 'request_time': '0.000', 'mongo_exec_time': '-', 'url': '//nginx_stub_status', 'request': '[19/Aug/2013:16:31:55 -0400]', 'hostname': ''xxxxxx', 'bytes_sent': '109', 'audit_response_time': '-', 'application': '-', 'user_agent': 'python-requests/1.2.3 CPython/2.6.6 Linux/2.6.32-358.14.1.el6.x86_64', 'upstream_response_time': '-', 'queries_count': '-', 'clientip': '127.0.0.1', 'hma_exec_time': '-', 'method': 'GET', 'user': '-'} 
後某些日誌

請幫忙找邏輯兩個時間戳

+1

請更具體。顯示一些日誌記錄和你想要的輸出。 – alecxe

+0

我已添加日誌示例。請檢查 –

回答

1

如果我正確理解你的問題之間的解析文件,你正在努力尋找一種方法來過濾日誌基於它們的時間戳的消息。您可以使用the datetime module

import datetime 
time = datetime.datetime.strptime('27/Aug/2013:12:45:54', '%d/%b/%Y:%H:%M:%S') 
start_timestamp = datetime.datetime.strptime('20/Aug/2013:12:45:54', '%d/%b/%Y:%H:%M:%S') 
end_timestamp = datetime.datetime.strptime('30/Aug/2013:12:45:54', '%d/%b/%Y:%H:%M:%S') 

if time >= start_timestamp and time <= end_timestamp: print 'it worked' 
+0

非常感謝。我真正在寫自己的邏輯而不是這個,我遇到了問題 –

相關問題