本文整理汇总了Python中raven.handlers.logging.SentryHandler类的典型用法代码示例。如果您正苦于以下问题:Python SentryHandler类的具体用法?Python SentryHandler怎么用?Python SentryHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SentryHandler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: register_sentry_handler
def register_sentry_handler():
handler = SentryHandler()
handler.client = app.extensions['sentry'].client
setup_logging(handler)
return handler
示例2: sentry_logger
def sentry_logger(sender, logger, loglevel, logfile, format,
colorize, **kw):
filter_ = CeleryFilter()
handler = SentryHandler(client)
handler.setLevel(loglevel)
handler.addFilter(filter_)
logger.addHandler(handler)
示例3: init_logging
def init_logging(app):
location_log_config = app.config['LOGGING_CONFIG_LOCATION']
if os.path.isfile(location_log_config):
logging.config.fileConfig(location_log_config,
disable_existing_loggers=True)
logger.info('Loaded logging configuration file "%s"',
location_log_config)
else:
logger.warning('Error loading configuration file "%s"',
location_log_config)
if app.config['SENTRY_DSN']:
# This could not be done in the default .ini because the
# handler has to be passed to `raven.setup_logging`.
# the following adds itself to app.extensions['sentry']
sentry = Sentry()
sentry.init_app(app, dsn=app.config['SENTRY_DSN'])
handler = SentryHandler(app.extensions['sentry'].client)
handler.level = logging.NOTSET
setup_logging(handler)
logger.debug("Sentry DSN: {}".format(app.config['SENTRY_DSN']))
else:
logger.debug("No sentry DSN specified")
示例4: set_logger
def set_logger(cls, filename, to_sentry=False):
logger = logging.getLogger()
logger.setLevel(getattr(logging, config['logging']['level'].upper()))
logger.handlers = []
format_ = logging.Formatter(
'[%(levelname)s %(asctime)s.%(msecs)d %(module)s:%(lineno)d]: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
if config['logging']['path']:
channel = logging.handlers.RotatingFileHandler(
filename=os.path.join(config['logging']['path'], filename),
maxBytes=config['logging']['max_size'],
backupCount=config['logging']['num_backups']
)
channel.setFormatter(format_)
logger.addHandler(channel)
else:# send to console instead of file
channel = logging.StreamHandler()
channel.setFormatter(format_)
logger.addHandler(channel)
if to_sentry and config['sentry_dsn']:
handler = SentryHandler(
config['sentry_dsn']
)
handler.setLevel('ERROR')
logger.addHandler(handler)
示例5: server_log_handler
def server_log_handler(client):
""" Adds sentry log handler to the logger
:return: the sentry handler
"""
from raven.handlers.logging import SentryHandler
sh = SentryHandler(client=client, level=logging.ERROR)
# Don't send Sentry events for command-line usage errors
old_emit = sh.emit
def emit(self, record):
if record.message.startswith("Command-line usage error:"):
return
return old_emit(record)
sh.emit = lambda x: emit(sh, x)
fmt = ("[%(asctime)s][%(levelname)s] %(filename)s: %(lineno)d | "
"%(message)s")
formatter = logging.Formatter(fmt=fmt, datefmt="%H:%M:%S")
formatter.converter = time.gmtime
sh.setFormatter(formatter)
logger.addHandler(sh)
return sh
示例6: on_inst_register_clicked
def on_inst_register_clicked(self, *args, **kwargs):
'''send the registration data as sentry info log message
'''
# create the handler first
from raven import Client
from raven.handlers.logging import SentryHandler
sentry_client = Client('https://59105d22a4ad49158796088c26bf8e4c:'
'[email protected]'
'app.getsentry.com/45704')
handler = SentryHandler(sentry_client)
handler.setLevel(logging.INFO)
# the registration logger gets the above handler
registrations = logging.getLogger('bauble.registrations')
registrations.setLevel(logging.INFO)
registrations.addHandler(handler)
# produce the log record
registrations.info([(key, getattr(self.model, key))
for key in self.widget_to_field_map.values()])
# remove the handler after usage
registrations.removeHandler(handler)
# disable button, so user will not send registration twice
self.view.widget_set_sensitive('inst_register', False)
示例7: SentryHandler
def SentryHandler(dns=None, level=logging.WARNING):
from raven.handlers.logging import SentryHandler
dns = dns or os.environ.get("SENTRY")
sentry_handler = SentryHandler(dns)
sentry_handler.level = level
return sentry_handler
示例8: test_tags_merge
def test_tags_merge(self):
handler = SentryHandler(self.client, tags={'foo': 'bar', 'biz': 'baz'})
record = self.make_record('Message', extra={'tags': {'foo': 'faz'}})
handler.emit(record)
self.assertEqual(len(self.client.events), 1)
event = self.client.events.pop(0)
assert event['tags'] == {'foo': 'faz', 'biz': 'baz'}
示例9: start
def start(self):
# remove all handlers
self.handlers = []
# sentry log handler
sentry_client = raven.Client('https://3d25da5bd0b34990b282e7112a6113ab:d585806dc45540a891dda0c3418fb8d5'
'@sentry.sickrage.ca/4?verify_ssl=0', release=sickrage.version(),
repos={'sickrage': {'name': 'sickrage/sickrage'}})
sentry_handler = SentryHandler(client=sentry_client, tags={'platform': platform.platform()})
sentry_handler.setLevel(self.logLevels['ERROR'])
sentry_handler.set_name('sentry')
self.addHandler(sentry_handler)
# console log handler
if self.consoleLogging:
console_handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s %(levelname)s::%(threadName)s::%(message)s', '%H:%M:%S')
console_handler.setFormatter(formatter)
console_handler.setLevel(self.logLevels['INFO'] if not self.debugLogging else self.logLevels['DEBUG'])
self.addHandler(console_handler)
# file log handlers
if self.logFile:
# make logs folder if it doesn't exist
if not os.path.exists(os.path.dirname(self.logFile)):
if not makeDir(os.path.dirname(self.logFile)):
return
if sickrage.app.developer:
rfh = FileHandler(
filename=self.logFile,
)
else:
rfh = RotatingFileHandler(
filename=self.logFile,
maxBytes=self.logSize,
backupCount=self.logNr
)
rfh_errors = RotatingFileHandler(
filename=self.logFile.replace('.log', '.error.log'),
maxBytes=self.logSize,
backupCount=self.logNr
)
formatter = logging.Formatter('%(asctime)s %(levelname)s::%(threadName)s::%(message)s', '%Y-%m-%d %H:%M:%S')
rfh.setFormatter(formatter)
rfh.setLevel(self.logLevels['INFO'] if not self.debugLogging else self.logLevels['DEBUG'])
self.addHandler(rfh)
rfh_errors.setFormatter(formatter)
rfh_errors.setLevel(self.logLevels['ERROR'])
self.addHandler(rfh_errors)
示例10: _sentry_handler
def _sentry_handler(sentry_key=None, obci_peer=None):
try:
client = OBCISentryClient(sentry_key, obci_peer=obci_peer, auto_log_stacks=True)
except ValueError as e:
print('logging setup: initializing sentry failed - ', e.args)
return None
handler = SentryHandler(client)
handler.set_name('sentry_handler')
setup_logging(handler)
return handler
示例11: process_logger_event
def process_logger_event(sender, logger, loglevel, logfile, format, colorize, **kw):
import logging
logger = logging.getLogger()
handler = SentryHandler(client)
if handler.__class__ in list(map(type, logger.handlers)):
return False
handler.setLevel(logging.ERROR)
handler.addFilter(CeleryFilter())
logger.addHandler(handler)
示例12: create_app
def create_app(load_admin=True):
from redash import extensions, handlers
from redash.handlers.webpack import configure_webpack
from redash.handlers import chrome_logger
from redash.admin import init_admin
from redash.models import db
from redash.authentication import setup_authentication
from redash.metrics.request import provision_app
app = Flask(__name__,
template_folder=settings.STATIC_ASSETS_PATH,
static_folder=settings.STATIC_ASSETS_PATH,
static_path='/static')
# Make sure we get the right referral address even behind proxies like nginx.
app.wsgi_app = ProxyFix(app.wsgi_app, settings.PROXIES_COUNT)
#app.wsgi_app = ReverseProxied(app.wsgi_app)
app.url_map.converters['org_slug'] = SlugConverter
if settings.ENFORCE_HTTPS:
SSLify(app, skips=['ping'])
if settings.SENTRY_DSN:
from raven import Client
from raven.contrib.flask import Sentry
from raven.handlers.logging import SentryHandler
client = Client(settings.SENTRY_DSN, release=__version__, install_logging_hook=False)
sentry = Sentry(app, client=client)
sentry.client.release = __version__
sentry_handler = SentryHandler(client=client)
sentry_handler.setLevel(logging.ERROR)
logging.getLogger().addHandler(sentry_handler)
# configure our database
app.config['SQLALCHEMY_DATABASE_URI'] = settings.SQLALCHEMY_DATABASE_URI
app.config.update(settings.all_settings())
provision_app(app)
db.init_app(app)
migrate.init_app(app, db)
if load_admin:
init_admin(app)
mail.init_app(app)
setup_authentication(app)
limiter.init_app(app)
handlers.init_app(app)
configure_webpack(app)
extensions.init_extensions(app)
chrome_logger.init_app(app)
return app
示例13: setup_raven
def setup_raven():
'''we setup sentry to get all stuff from our logs'''
pcfg = AppBuilder.get_pcfg()
from raven.handlers.logging import SentryHandler
from raven import Client
from raven.conf import setup_logging
client = Client(pcfg['raven_dsn'])
handler = SentryHandler(client)
# TODO VERIFY THIS -> This is the way to do it if you have a paid account, each log call is an event so this isn't going to work for free accounts...
handler.setLevel(pcfg["raven_loglevel"])
setup_logging(handler)
return client
示例14: add_sentry_handler_to_celery_task_logger
def add_sentry_handler_to_celery_task_logger(client, sentry_handler_log_level):
handler = SentryHandler(client)
handler.setLevel(sentry_handler_log_level)
def process_task_logger_event(sender, logger, loglevel, logfile, format,
colorize, **kw):
for h in logger.handlers:
if type(h) == SentryHandler:
return False
logger.addHandler(handler)
after_setup_task_logger.connect(process_task_logger_event, weak=False)
示例15: setup_logger
def setup_logger():
"""Set up our logger with sentry support.
Args: None
Returns: None
Raises: None
"""
myLogger = logging.getLogger('osm-reporter')
myLogger.setLevel(logging.DEBUG)
myDefaultHanderLevel = logging.DEBUG
# create formatter that will be added to the handlers
myFormatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s')
myTempDir = '/tmp'
# so e.g. jenkins can override log dir.
if 'OSM_REPORTER_LOGFILE' in os.environ:
myFilename = os.environ['OSM_REPORTER_LOGFILE']
else:
myFilename = os.path.join(myTempDir, 'reporter.log')
myFileHandler = logging.FileHandler(myFilename)
myFileHandler.setLevel(myDefaultHanderLevel)
# create console handler with a higher log level
myConsoleHandler = logging.StreamHandler()
myConsoleHandler.setLevel(logging.ERROR)
try:
#pylint: disable=F0401
from raven.handlers.logging import SentryHandler
# noinspection PyUnresolvedReferences
from raven import Client
#pylint: enable=F0401
myClient = Client(
'http://12ef42a1d4394255a2041ac0428e8ef7:'
'[email protected]/6')
mySentryHandler = SentryHandler(myClient)
mySentryHandler.setFormatter(myFormatter)
mySentryHandler.setLevel(logging.ERROR)
add_handler_once(myLogger, mySentryHandler)
myLogger.debug('Sentry logging enabled')
except ImportError:
myLogger.debug('Sentry logging disabled. Try pip install raven')
#Set formatters
myFileHandler.setFormatter(myFormatter)
myConsoleHandler.setFormatter(myFormatter)
# add the handlers to the logger
add_handler_once(myLogger, myFileHandler)
add_handler_once(myLogger, myConsoleHandler)