Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

agriconnect / opbeat   python

Repository URL to install this package:

/ conf / __init__.py

"""
opbeat.conf
~~~~~~~~~~

:copyright: (c) 2011-2012 Opbeat

Large portions are
:copyright: (c) 2010 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
"""

import logging

__all__ = ('setup_logging', )


def setup_logging(handler, exclude=['opbeat',
                                    'gunicorn',
                                    'south',
                                    'opbeat.errors']):
    """
    Configures logging to pipe to Opbeat.

    - ``exclude`` is a list of loggers that shouldn't go to Opbeat.

    For a typical Python install:

    >>> from opbeat.handlers.logging import OpbeatHandler
    >>> client = Opbeat(...)
    >>> setup_logging(OpbeatHandler(client))

    Within Django:

    >>> from opbeat.contrib.django.logging import OpbeatHandler
    >>> setup_logging(OpbeatHandler())

    Returns a boolean based on if logging was configured or not.
    """
    logger = logging.getLogger()
    if handler.__class__ in map(type, logger.handlers):
        return False

    logger.addHandler(handler)

    # Add StreamHandler to sentry's default so you can catch missed exceptions
    for logger_name in exclude:
        logger = logging.getLogger(logger_name)
        logger.propagate = False
        logger.addHandler(logging.StreamHandler())

    return True