def business_exception_log(e): if not is_none(request.trace_id) and not is_none(request.full_path): logger.error( 'BusinessException, code: %s, msg: %s trace_id: %s request path: %s' % (e.code, e.msg, request.trace_id, request.full_path)) else: logger.error('BusinessException, code: %s, msg: %s' % (e.code, e.msg))
def get_chuck(): try: hostname = os.uname()[1] index = int(random.randint(0, len(quotes) - 1)) return hostname, quotes[index]["name"], quotes[index]["quote"] except Exception as err: logger.error(f"Other error occurred: {err}") return {"hostname": "hostname", "name": "error", "quote": err}
def translate_name_to_filename(name: str = None): if name is not None: filename = name.lower().replace(" ", "_") + ".jpg" filename = sanitize_filename(filename) logger.info("File Found" + str(filename)) else: logger.error("File not found Found", filename=str(name)) filename = "error.png" return filename
def check_message_validity(json_object): if "quotes" in json_object: try: logger.info("Message Contains!") quote = Quote.parse_obj(json_object["quotes"]) return quote except ValidationError: logger.error("Something went wrong!") raise ValueError elif "detail" in json_object: raise ValueError else: raise ValueError
def readdirAsync(self, path, depth=2, threadPool=pool): try: foo = json.loads(self.disk.list_files(path)) except Exception as s: logger.exception(s) files = ['.', '..'] abs_files = [] if 'errno' in foo: logger.error( "maybe token is not right, try re login http://pan.baidu.com in Chrome" ) if "list" not in foo: # logger.info("no list") return for file in foo['list']: if file['server_filename'].startswith("."): continue files.append(file['server_filename']) abs_files.append(file['path']) # logger.debug(file['path']) file_num = len(abs_files) group = int(math.ceil(file_num / 100.0)) # logger.debug(f"group: {group}") # logger.debug(f"abs_files: {abs_files}") for i in range(group): obj = [f for n, f in enumerate(abs_files) if n % group == i] #一组数据 while 1: try: ret = json.loads(self.disk.meta(obj)) # logger.debug(f'{ret}') break except Exception as e: logger.info(ret) logger.exception(e) for file_info in ret['info']: # logger.debug(file_info) self._add_file_to_buffer(file_info['path'], file_info) if depth > 0: depth -= 1 if file_info['isdir']: if file_info['path'] not in self.traversed_folder: self.traversed_folder[path] = True threadPool.submit(self.readdirAsync, file_info['path'], depth, threadPool) self.dir_buffer[path] = files
def implement_get(self, params, **kwargs): self.url_add_common_param() self.url_add_business_param(params) logger.info(self.url) resp = requests.get(self.url, **kwargs) if resp.status_code == 200: ret_data = resp.json() else: raise BusinessException(code=resp.status_code, msg=resp.text, url=resp.url) # 如果请求成功,但是后端返回的code不是200,则记录日志 if 'code' not in ret_data or ret_data.get('code') != 200: logger.error( 'api_return_error, code: %s, msg: %s, url: %s' % (ret_data.get('code'), ret_data.get('msg'), self.url)) return ret_data
def implement_post(self, params, headers=None,**kwargs): self.url_add_common_param() params = {'params':json.dumps(params)} resp = requests.post(self.url, data=params, headers=headers, **kwargs) logger.info(self.url) if resp.status_code == 200: ret_data = resp.json() else: raise BusinessException(code=resp.status_code, msg=resp.text, url=resp.url) if 'code' not in ret_data or ret_data.get('code') != 200: logger.error( 'api_return_error, code: %s, msg: %s, url: %s' % (ret_data.get('code'), ret_data.get('msg'), self.url)) return ret_data
def handle(self, *args, **options): logger.debug('start generating config for squid3 daemon in squid3 application') config = gen_squid_conf() logger.debug(config) conf_file_name = CONFIG['SQUID_CONF_FILE'] try: f = open(conf_file_name, 'w') f.write(config) f.close() except IOError: msg = "can't write file {0}".format(conf_file_name) logger.error(msg) else: logger.debug('config for squid3 daemon successfully generated in squid3 application')
def get_image_simple(apiVersion: int = 1, name: str = None): try: if apiVersion == 2: url = settings.external_image_api_v2 params = {'author': name} else: url = settings.external_image_api params = {'name': name} with httpx.Client() as client: logger.debug("URL: " + url) logger.debug("Name: " + name) response = client.get(url, params=params) response.raise_for_status() try: json_object = response.json() if 'image' in json_object: return {'image': json_object['image']} else: raise ValueError except ValueError as e: error_msg = "Not Valid JSON" logger.error(error_msg) return Image(name='error', Image=error_msg) except httpx.RequestError as exc: error_msg = f"An error occured while requesting {exc.request.url!r}." logger.error(error_msg) return Image(name='error', Image=error_msg) except httpx.HTTPStatusError as exc: error_msg = f"Error response {exc.response.status_code} while requesting {exc.request.url!r}." logger.error(error_msg) return Image(name='error', Image=error_msg) except httpx.HTTPError as exc: error_msg = f"HTTPError Error while requesting {exc.request.url!r}." logger.error(error_msg) return Image(name='error', Image=error_msg) except httpx.InvalidURL as exc: error_msg = f"Error while requesting {exc.request.url!r}." logger.error(error_msg) return Image(name='error', Image=error_msg)
def get_image_as_base64(name: str = None): if name is not None: filename = translate_name_to_filename(name) filepath = str(pathlib.Path.cwd().joinpath("static", "images", filename)) image_path = pathlib.Path(filepath) logger.debug("Imagepath: " + str(image_path)) if image_path.is_file() and imghdr.what(image_path) is not None: with open(image_path, "rb") as img_file: image_base64 = base64.b64encode(img_file.read()).decode("utf-8") return image_base64 else: logger.error("Imagepath not image", Imagepath=str(image_path)) raise ValueError else: logger.error("Invlid name provided: " + str(name)) raise ValueError
def get_quote(url): try: response = requests.get(url) # If the response was successful, no Exception will be raised response.raise_for_status() except HTTPError as http_err: logger.error(f"HTTP error occurred: {http_err}") return {"name": "error", "quote": http_err} except Exception as err: logger.error(f"Other error occurred: {err}") return {"name": "error", "quote": err} else: try: json_object = response.json() logger.info("Success!") return response.json() except ValueError as e: logger.info("Not Valid JSON") return {"name": "error", "quote": "Not Valid JSON"}
def test_get_quotes(): logger.info("Running '/quotes' tests") logger.info("Get '/admin/delete_all'") response = client.get("/admin/delete_all") logger.info("Post '/seed'") response = client.post("/seed", json=test_quotes_list) logger.info("Get '/quotes'") response = client.get("/quotes") assert response.status_code == 200 msg = response.json() del msg["backend"] logger.info("Quote Received " + str(msg["quotes"])) for quote in msg["quotes"]: if quote not in test_quotes_list["quotes"]: logger.error("Unknown Quote: " + quote, quote=quote) assert False
def get_quote_simple(url): try: with httpx.Client() as client: logger.info("URL: " + url) response = client.get(url) response.raise_for_status() try: json_object = response.json() return check_message_validity(json_object) except ValueError as e: error_msg = "Not Valid JSON" logger.error(error_msg) return Quote(name='error', quote=error_msg) except httpx.RequestError as exc: error_msg = f"An error occured while requesting {exc.request.url!r}." logger.error(error_msg) return Quote(name='error', quote=error_msg) except httpx.HTTPStatusError as exc: error_msg = f"Error response {exc.response.status_code} while requesting {exc.request.url!r}." logger.error(error_msg) return Quote(name='error', quote=error_msg) except httpx.HTTPError as exc: error_msg = f"HTTPError Error while requesting {exc.request.url!r}." logger.error(error_msg) return Quote(name='error', quote=error_msg) except httpx.InvalidURL as exc: error_msg = f"Error while requesting {exc.request.url!r}." logger.error(error_msg) return Quote(name='error', quote=error_msg)
def __init__(self, msg, log=False): super().__init__(msg) self.msg = msg if log is True: from core.log import logger logger.error(msg)
def __init__(self, msg): super().__init__(msg) self.msg = msg logger.error(msg)
def request_fail(func=BaseError.system_exception): if not is_none(request.trace_id): logger.error('request fail trace id is:' + str(request.trace_id)) logger.error(traceback.format_exc()) return func()