Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Version 3.2.1
- import logging
- import logging.handlers
- def memoize(f):
- cache = {}
- def memf(*x):
- if x not in cache:
- cache[x] = f(*x)
- return cache[x]
- return memf
- @memoize
- def get_logger():
- """
- HTTP logging is always verbose (DEBUG).
- Console logging is INFO by default.
- """
- # create logger
- logger = logging.getLogger('informatica')
- logger.setLevel(logging.DEBUG)
- # create console handler
- console_handler = logging.StreamHandler()
- # create formatter
- console_formatter = logging.Formatter('%(asctime)s [%(levelname)8s] %(message)s', datefmt="%Y-%m-%d %H:%M:%S")
- # add formatter to console_handler
- console_handler.setFormatter(console_formatter)
- console_handler.setLevel(logging.INFO)
- # http handler
- host = "localhost:9090"
- url = ""
- class MyHTTPHandler(logging.handlers.HTTPHandler):
- wanted = ["lineno", "module", "pathname", "funcName", "process", "levelname", "levelno", "msg"]
- def mapLogRecord(self, record):
- return {name: getattr(record, name, "#missing") for name in self.wanted}
- http_handler = MyHTTPHandler(host, url, method='GET')
- # add console_handler to logger
- logger.addHandler(console_handler)
- http_formatter = logging.Formatter('%(name)s - %(levelname)8s - %(message)s')
- http_handler.setFormatter(http_formatter)
- http_handler.setLevel(logging.DEBUG)
- logger.addHandler(http_handler)
- return logger
- def record_usage():
- get_logger().debug("used")
- if __name__ == "__main__":
- record_usage()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement