Skip to content
This repository has been archived by the owner on Jan 31, 2020. It is now read-only.

Commit

Permalink
Merge pull request #4 from davidlmorton/master
Browse files Browse the repository at this point in the history
More logging work
  • Loading branch information
davidlmorton committed Oct 20, 2014
2 parents 06e497d + 21ebe45 commit 3a539c9
Showing 1 changed file with 26 additions and 1 deletion.
27 changes: 26 additions & 1 deletion ptero_common/logging_configuration.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
from termcolor import colored
import requests
from requests.models import Request
import logging
import os

Expand All @@ -8,8 +10,31 @@ def configure_logging(level_env_var, time_env_var):
format_str = '%(asctime)s '
else:
format_str = ''
format_str += '%(levelname)5s ' + colored('[%(module)s.%(funcName)s] ', 'green')
format_str += '%(levelname)5s ' + colored('[%(name)s] ', 'green')
format_str += '%(message)s'

logging.basicConfig(format=format_str,
level=os.environ.get(level_env_var, 'INFO').upper())

def log_request(target, kind):
def wrapper(*args, **kwargs):
logger = kwargs.get('logger', logging.getLogger(__name__))
if 'logger' in kwargs:
del kwargs['logger']

response = target(*args, **kwargs)

r = Request(kind.upper(), *args, **kwargs)
logger.info("%s from %s %s", response.status_code, kind.upper(), r.url)
for name in ['params', 'headers', 'data']:
if getattr(r, name):
logger.debug(" %s%s: %s", name[0].upper(), name[1:],
getattr(r, name))

return response
return wrapper

class LoggedRequest(object):
def __getattr__(self, name):
return log_request(getattr(requests, name), name)
logged_request = LoggedRequest()

0 comments on commit 3a539c9

Please sign in to comment.