| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import logging |
| from logging import NullHandler |
|
|
| from boto3.compat import _warn_deprecated_python |
| from boto3.session import Session |
|
|
| __author__ = 'Amazon Web Services' |
| __version__ = '1.42.27' |
|
|
|
|
| |
| DEFAULT_SESSION = None |
|
|
|
|
| def setup_default_session(**kwargs): |
| """ |
| Set up a default session, passing through any parameters to the session |
| constructor. There is no need to call this unless you wish to pass custom |
| parameters, because a default session will be created for you. |
| """ |
| global DEFAULT_SESSION |
| DEFAULT_SESSION = Session(**kwargs) |
|
|
|
|
| def set_stream_logger(name='boto3', level=logging.DEBUG, format_string=None): |
| """ |
| Add a stream handler for the given name and level to the logging module. |
| By default, this logs all boto3 messages to ``stdout``. |
| |
| >>> import boto3 |
| >>> boto3.set_stream_logger('boto3.resources', logging.INFO) |
| |
| For debugging purposes a good choice is to set the stream logger to ``''`` |
| which is equivalent to saying "log everything". |
| |
| .. WARNING:: |
| Be aware that when logging anything from ``'botocore'`` the full wire |
| trace will appear in your logs. If your payloads contain sensitive data |
| this should not be used in production. |
| |
| :type name: string |
| :param name: Log name |
| :type level: int |
| :param level: Logging level, e.g. ``logging.INFO`` |
| :type format_string: str |
| :param format_string: Log message format |
| """ |
| if format_string is None: |
| format_string = "%(asctime)s %(name)s [%(levelname)s] %(message)s" |
|
|
| logger = logging.getLogger(name) |
| logger.setLevel(level) |
| handler = logging.StreamHandler() |
| handler.setLevel(level) |
| formatter = logging.Formatter(format_string) |
| handler.setFormatter(formatter) |
| logger.addHandler(handler) |
|
|
|
|
| def _get_default_session(): |
| """ |
| Get the default session, creating one if needed. |
| |
| :rtype: :py:class:`~boto3.session.Session` |
| :return: The default session |
| """ |
| if DEFAULT_SESSION is None: |
| setup_default_session() |
| _warn_deprecated_python() |
|
|
| return DEFAULT_SESSION |
|
|
|
|
| def client(*args, **kwargs): |
| """ |
| Create a low-level service client by name using the default session. |
| |
| See :py:meth:`boto3.session.Session.client`. |
| """ |
| return _get_default_session().client(*args, **kwargs) |
|
|
|
|
| def resource(*args, **kwargs): |
| """ |
| Create a resource service client by name using the default session. |
| |
| See :py:meth:`boto3.session.Session.resource`. |
| """ |
| return _get_default_session().resource(*args, **kwargs) |
|
|
|
|
| |
| |
| logging.getLogger('boto3').addHandler(NullHandler()) |
|
|