def job_log(request, client_id, project_name, spider_name, job_id): """ get log of jog :param request: request object :param client_id: client id :param project_name: project name :param spider_name: spider name :param job_id: job id :return: log of job """ if request.method == 'GET': client = Client.objects.get(id=client_id) # get log url url = log_url(client.ip, client.port, project_name, spider_name, job_id) try: # get last 1000 bytes of log response = requests.get( url, timeout=5, headers={'Range': 'bytes=-1000'}, auth=(client.username, client.password) if client.auth else None) # Get encoding encoding = response.apparent_encoding # log not found if response.status_code == 404: return JsonResponse({'message': 'Log Not Found'}, status=404) # bytes to string text = response.content.decode(encoding, errors='replace') return HttpResponse(text) except requests.ConnectionError: return JsonResponse({'message': 'Load Log Error'}, status=500)
def job_log(request, client_id, project_name, spider_name, job_id): """ get log of jog :param request: request object :param client_id: client id :param project_name: project name :param spider_name: spider name :param job_id: job id :return: log of job """ if request.method == 'GET': client = Client.objects.get(id=client_id) # get log url url = log_url(client.ip, client.port, project_name, spider_name, job_id) try: # get last 1000 bytes of log response = requests.get(url, timeout=5, headers={ 'Range': 'bytes=-1000' }) # log not found if response.status_code == 404: return JsonResponse({'message': 'Log Not Found'}, status=404) text = response.text return HttpResponse(text) except requests.ConnectionError: return JsonResponse({'message': 'Load Log Error'}, status=500)
def job_log(request, id, project, spider, job): if request.method == 'GET': client = Client.objects.get(id=id) url = log_url(client.ip, client.port, project, spider, job) try: response = requests.get(url, timeout=5) if response.status_code == 200: text = response.text return HttpResponse(text[-5000:-1]) if response.status_code == 404: return HttpResponse('日志不存在') except requests.ConnectionError: return HttpResponse('日志加载失败')
def job_log(request, id, project, spider, job): if request.method == 'GET': client = Client.objects.get(id=id) url = log_url(client.ip, client.port, project, spider, job) try: response = requests.get(url, timeout=5, headers={'Range': 'bytes=-1000'}) if response.status_code == 404: return HttpResponse('日志不存在') text = response.text return HttpResponse(text) except requests.ConnectionError: return HttpResponse('日志加载失败')