2 # Copyright 2008-2013 Andrey Petrov and contributors (see CONTRIBUTORS.txt)
4 # This module is part of urllib3 and is released under
5 # the MIT License: http://www.opensource.org/licenses/mit-license.php
8 urllib3 - Thread-safe connection pooling and re-using.
11 __author__ = 'Andrey Petrov (andrey.petrov@shazow.net)'
16 from .connectionpool import (
22 from . import exceptions
23 from .filepost import encode_multipart_formdata
24 from .poolmanager import PoolManager, ProxyManager, proxy_from_url
25 from .response import HTTPResponse
26 from .util import make_headers, get_host, Timeout
29 # Set default logging handler to avoid "No handler found" warnings.
32 from logging import NullHandler
34 class NullHandler(logging.Handler):
35 def emit(self, record):
38 logging.getLogger(__name__).addHandler(NullHandler())
40 def add_stderr_logger(level=logging.DEBUG):
42 Helper for quickly adding a StreamHandler to the logger. Useful for
45 Returns the handler after adding it.
47 # This method needs to be in this __init__.py to get the __name__ correct
48 # even if urllib3 is vendored within another package.
49 logger = logging.getLogger(__name__)
50 handler = logging.StreamHandler()
51 handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s %(message)s'))
52 logger.addHandler(handler)
53 logger.setLevel(level)
54 logger.debug('Added an stderr logging handler to logger: %s' % __name__)