Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import asyncio
- import logging
- from functools import wraps
- def async_log_exception(logger, *, reraise=True):
- if isinstance(logger, str):
- logger = logging.getLogger(logger)
- def decorator(coroutine):
- @wraps(coroutine)
- async def wrapper(*args, **kwargs):
- try:
- return await coroutine(*args, **kwargs)
- except Exception as error:
- logger.exception('Exception occurred')
- if reraise:
- raise
- return wrapper
- return decorator
- @async_log_exception(logger=logging.getLogger(__name__), reraise=False)
- async def error():
- raise Exception('asdfasdf')
- def main():
- loop = asyncio.get_event_loop()
- loop.run_until_complete(error())
- if __name__ == '__main__':
- main()
Add Comment
Please, Sign In to add comment