Python raven.contrib.flask.Sentry() Examples
The following are 8
code examples of raven.contrib.flask.Sentry().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
raven.contrib.flask
, or try the search function
.
Example #1
Source File: __init__.py From everyclass-server with Mozilla Public License 2.0 | 6 votes |
def init_plugins(): """初始化日志、错误追踪、打点插件""" from everyclass.rpc import init as init_rpc from everyclass.common.flask import print_config # Sentry if plugin_available("sentry"): sentry.init_app(app=__app) sentry_handler = SentryHandler(sentry.client) sentry_handler.setLevel(logging.WARNING) logging.getLogger().addHandler(sentry_handler) init_rpc(sentry=sentry) logger.info('Sentry is inited because you are in {} mode.'.format(__app.config['CONFIG_NAME'])) # metrics global statsd statsd = DogStatsd(namespace=f"{__app.config['SERVICE_NAME']}.{os.environ.get('MODE').lower()}", use_default_route=True) init_rpc(logger=logger) print_config(__app, logger)
Example #2
Source File: sentry.py From udata with GNU Affero General Public License v3.0 | 5 votes |
def public_dsn(dsn): '''Transform a standard Sentry DSN into a public one''' m = RE_DSN.match(dsn) if not m: log.error('Unable to parse Sentry DSN') public = '{scheme}://{client_id}@{domain}/{site_id}'.format( **m.groupdict()) return public
Example #3
Source File: __init__.py From flask-base-api with MIT License | 5 votes |
def create_app(): # instantiate the app app = BaseFlask(__name__) # configure sentry if not app.debug and not app.testing: global sentry sentry = Sentry(app, dsn=app.config['SENTRY_DSN']) # set up extensions db.init_app(app) bcrypt.init_app(app) migrate.init_app(app, db) mail.init_app(app) # register blueprints from project.api.v1.auth import auth_blueprint from project.api.v1.users import users_blueprint from project.api.v1.devices import devices_blueprint from project.api.v1.phone_validation import phone_validation_blueprint from project.api.v1.email_validation import email_validation_blueprint app.register_blueprint(auth_blueprint, url_prefix='/v1') app.register_blueprint(users_blueprint, url_prefix='/v1') app.register_blueprint(devices_blueprint, url_prefix='/v1') app.register_blueprint(phone_validation_blueprint, url_prefix='/v1') app.register_blueprint(email_validation_blueprint, url_prefix='/v1') # register error handlers from project.api.common.utils import exceptions from project.api.common import error_handlers app.register_error_handler(exceptions.InvalidPayload, error_handlers.handle_exception) app.register_error_handler(exceptions.BusinessException, error_handlers.handle_exception) app.register_error_handler(exceptions.UnauthorizedException, error_handlers.handle_exception) app.register_error_handler(exceptions.ForbiddenException, error_handlers.handle_exception) app.register_error_handler(exceptions.NotFoundException, error_handlers.handle_exception) app.register_error_handler(exceptions.ServerErrorException, error_handlers.handle_exception) app.register_error_handler(Exception, error_handlers.handle_general_exception) return app # noinspection PyPropertyAccess
Example #4
Source File: loggers.py From mbspotify with GNU General Public License v2.0 | 5 votes |
def _add_sentry(app, level=logging.NOTSET): """Adds Sentry logging. Sentry is a realtime event logging and aggregation platform. Additional information about it is available at https://sentry.readthedocs.org/. We use Raven as a client for Sentry. More info about Raven is available at https://raven.readthedocs.org/. """ Sentry(app, logging=True, level=level)
Example #5
Source File: exceptionlog.py From quay with Apache License 2.0 | 5 votes |
def init_app(self, app): sentry_type = app.config.get("EXCEPTION_LOG_TYPE", "FakeSentry") if sentry_type == "Sentry": sentry = FlaskSentry(app, register_signal=False) else: sentry = FakeSentry() # register extension with app app.extensions = getattr(app, "extensions", {}) app.extensions["sentry"] = sentry return sentry
Example #6
Source File: ext.py From huskar with MIT License | 5 votes |
def init_app(self, *args, **kwargs): super(EnhancedSentry, self).init_app(*args, **kwargs) if self.client: # Downgrade the logging level of Sentry self.client.error_logger.error = self.client.error_logger.warning
Example #7
Source File: extensions.py From doorman with MIT License | 5 votes |
def make_celery(app, celery): """ From http://flask.pocoo.org/docs/0.10/patterns/celery/ """ # Register our custom serializer type before updating the configuration. from kombu.serialization import register from doorman.celery_serializer import djson_dumps, djson_loads register( 'djson', djson_dumps, djson_loads, content_type='application/x-djson', content_encoding='utf-8' ) # Actually update the config celery.config_from_object(app.config) # Register Sentry client if 'SENTRY_DSN' in app.config and app.config['SENTRY_DSN']: client = Client(app.config['SENTRY_DSN']) # register a custom filter to filter out duplicate logs register_logger_signal(client) # hook into the Celery error handler register_signal(client) TaskBase = celery.Task class ContextTask(TaskBase): abstract = True def __call__(self, *args, **kwargs): with app.app_context(): return TaskBase.__call__(self, *args, **kwargs) celery.Task = ContextTask return celery
Example #8
Source File: sentry.py From udata with GNU Affero General Public License v3.0 | 4 votes |
def init_app(app): if app.config['SENTRY_DSN']: try: from raven.contrib.celery import ( register_signal, register_logger_signal ) from raven.contrib.flask import Sentry except ImportError: log.error('raven is required to use Sentry') return sentry = Sentry() tags = app.config['SENTRY_TAGS'] log_level_name = app.config['SENTRY_LOGGING'] if log_level_name: log_level = getattr(logging, log_level_name.upper()) if log_level: sentry.logging = True sentry.level = log_level # Do not send HTTPExceptions exceptions = set(app.config['SENTRY_IGNORE_EXCEPTIONS']) for exception in IGNORED_EXCEPTIONS: exceptions.add(exception) app.config['SENTRY_IGNORE_EXCEPTIONS'] = list(exceptions) app.config['SENTRY_PUBLIC_DSN'] = public_dsn(app.config['SENTRY_DSN']) # Versions Management: uData and plugins versions as tags. for dist in entrypoints.get_plugins_dists(app): if dist.version: tags[dist.project_name] = dist.version # Do not forget udata itself tags['udata'] = pkg_resources.get_distribution('udata').version sentry.init_app(app) # register a custom filter to filter out duplicate logs register_logger_signal(sentry.client, loglevel=sentry.level) # hook into the Celery error handler register_signal(sentry.client)