• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python raven.Client类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中raven.Client的典型用法代码示例。如果您正苦于以下问题:Python Client类的具体用法?Python Client怎么用?Python Client使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Client类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: test_runloop_execute

    def test_runloop_execute(self):
        from asset_folder_importer.fix_unattached_media import reattach_thread
        from Queue import PriorityQueue
        from raven import Client
        
        q = PriorityQueue()
        
        fake_client = Client('https://1234:[email protected]/1')
        fake_client.captureException = mock.MagicMock()
        logger = logging.getLogger("test_runloop")
        logger.debug = mock.MagicMock()
        logger.error = mock.MagicMock()
        logger.info = mock.MagicMock()
        logger.warning = mock.MagicMock()
        
        rat = reattach_thread.ReattachThread(q, options=None, raven_client=fake_client, timeout=2,
                                             logger=logger, should_raise=True)
        q.put((1, {'itemid': 'KP-1234', 'collectionid': 'KP-5678'}))
        rat.reattach = mock.MagicMock()
        
        rat.run()

        rat.reattach.assert_called_with('KP-1234', 'KP-5678')
        logger.error.assert_called_with("Input queue timed out, exiting.")
        logger.info.assert_called_with("Reattach thread terminating")
开发者ID:guardian,项目名称:assetsweeper,代码行数:25,代码来源:test_reattach_thread.py


示例2: connect_sentry

 def connect_sentry(result):
     pillar_data = __salt__['pillar.raw']()
     sentry_data = {
         'result': result,
         'returned': ret,
         'pillar': pillar_data,
         'grains': __salt__['grains.items']()
     }
     servers = []
     try:
         for server in pillar_data['raven']['servers']:
             servers.append(server + '/api/store/')
         client = Client(
             servers=servers,
             public_key=pillar_data['raven']['public_key'],
             secret_key=pillar_data['raven']['secret_key'],
             project=pillar_data['raven']['project'],
         )
     except KeyError as missing_key:
         logger.error("Sentry returner need config '%s' in pillar",
                      missing_key)
     else:
         try:
             client.captureMessage(ret['comment'], extra=sentry_data)
         except Exception as err:
             logger.error("Can't send message to sentry: %s", err,
                          exc_info=True)
开发者ID:herlo,项目名称:salt,代码行数:27,代码来源:sentry_return.py


示例3: lights433

def lights433(host, port, adapter, adapter_args, switches, sentry):

    sentry_client, sentry_url = None, None
    if sentry or os.path.exists(DEFAULT_SENTRY_CONF):
        sentry = sentry if sentry is not None else DEFAULT_SENTRY_CONF
        with open(sentry, 'r') as f:
            sentry_url = f.read().strip()
        if not sentry_url:
            log.error("No sentry URL specified in [%s]" % sentry)
            sys.exit(1)
        else:
            sentry_client = Client(sentry_url)
            log.info("Sentry client configured!")

    try:
        log.info("Loading switch configurations from [%s]" % switches)

        adapter_kwargs = dict(
            pair.split('=') for pair in adapter_args.split(',')
        )

        adapter = get_adapter(adapter)(**adapter_kwargs)
        server = Lights433Server(host, port, adapter, switches)
    except:
        if sentry_client:
            sentry_client.captureException()
        raise

    if sentry_client:
        Sentry(dsn=sentry_url).init_app(server.app)
    server.run()
开发者ID:ownaginatious,项目名称:lights-433,代码行数:31,代码来源:main.py


示例4: main

def main():
    root = logging.getLogger('sentry.errors')
    root.setLevel(logging.DEBUG)
    root.addHandler(logging.StreamHandler())

    dsn = ' '.join(sys.argv[2:])
    if not (dsn or os.environ.get('SENTRY_DSN')):
        print "Error: No configuration detected!"
        print "You must either pass a DSN to the command, or set the SENTRY_DSN environment variable."
        sys.exit(1)

    print "Using DSN configuration:"
    print " ", dsn
    print

    client = Client(dsn)

    print "Client configuration:"
    for k in ('servers', 'project', 'public_key', 'secret_key'):
        print '  %-15s: %s' % (k, getattr(client, k))
    print

    if not all([client.servers, client.project, client.public_key, client.secret_key]):
        print "Error: All values must be set!"
        sys.exit(1)

    print 'Sending a test message...',
    ident = client.get_ident(client.captureMessage('This is a test message generated using ``raven test``'))
    print 'success!'
    print
    print 'The test message can be viewed at the following URL:'
    url = client.servers[0].split('/api/store/', 1)[0]
    print '  %s/%s/search/?q=%s' % (url, client.project, ident)
开发者ID:Ender27182818,项目名称:raven,代码行数:33,代码来源:runner.py


示例5: main

    def main(self):
        # consume standard input early
        lines = []
        p = re.compile("Subject: Cron <[^@][email protected][^ ]+> (.*)")
        mail_subject = 'This mail has no subject.'
        for line in sys.stdin:
            line = line.rstrip()
            lines.append(line)
            if line.startswith('Subject:'):
                mail_subject = line
                # Removes hostname from cron subject to aggregate sentry events
                if p.search(line):
                    cron_subject = p.search(line).group(1)
                    mail_subject = "Subject: Cron {0}".format(cron_subject)

        body = os.linesep.join(lines)
        if not len(body):
            sys.stderr.write("Empty stdin, nothing to report")
            sys.stderr.write(os.linesep)
            sys.exit(1)

        # init raven quickly, so if something is wrong it get logged early
        from raven import Client
        dsn = self.config['sentry_dsn']
        if not dsn.startswith("requests+"):
            dsn = "requests+" + dsn
        client = Client(dsn=dsn)

        if self.config['subject']:
            subject = self.config['subject']
        else:
            subject = mail_subject
        msg = os.linesep.join((subject, body))
        client.captureMessage(msg, extra=os.environ)
开发者ID:Quarky9,项目名称:states,代码行数:34,代码来源:script.py


示例6: run_from_argv

    def run_from_argv(self, argv):
        if len(argv) <= 2 or argv[2] in ['-h', '--help']:
            print self.usage(argv[1])
            sys.exit(1)

        subcommand_class = self._get_subcommand_class(argv[2])
        parser = self.create_parser(argv[0], argv[2], subcommand_class)
        if hasattr(self, 'use_argparse') and self.use_argparse:
            subcommand_class.add_arguments(parser)
            options = parser.parse_args(argv[3:])
            cmd_options = vars(options)
            args = cmd_options.pop('args', ())
        else:
            options, args = parser.parse_args(argv[3:])
        handle_default_options(options)
        try:
            subcommand_class.execute(*args, **options.__dict__)
        except Exception as e:
            if not isinstance(e, CommandError):
                if hasattr(settings, 'SENTRY_DSN'):
                    dsn = settings.SENTRY_DSN
                elif hasattr(settings, 'RAVEN_CONFIG'):
                    dsn = settings.RAVEN_CONFIG.get('dsn')
                else:
                    raise
                sentry = Client(dsn)
                # Force sync transport to avoid race condition with the process exiting
                for url in sentry.servers:
                    parsed = urlparse.urlparse(url)
                    transport = sentry._registry.get_transport(parsed)
                    transport.async = False
                sentry.get_ident(sentry.captureException())

            self._write_error_in_stderr(e)
开发者ID:maykinmedia,项目名称:django-maven,代码行数:34,代码来源:maven.py


示例7: SentryMiddleware

class SentryMiddleware(Sentry):
    """
    As raven.middleware.Sentry doesn't really do what we need, we build our
    own. It merely extends Sentry in order to reuse the get_http_context
    method.
    """

    def __init__(self, app, config):
        self.app = app

        dsn = aconfig.get('adhocracy.sentry.dsn', config=config)
        if not dsn:
            raise Exception(
                'Sentry misconfigured. Please add adhocracy.sentry.dsn '
                'to your adhocracy config.')

        self.client = Client(dsn)

        handler = SentryHandler(
            self.client, level=aconfig.get('adhocracy.sentry.loglevel'))
        setup_logging(handler)

    def __call__(self, environ, start_response):
        self.client.tags_context({'version': version.get_version()})
        self.client.http_context(self.get_http_context(environ))
        return self.app(environ, start_response)
开发者ID:alkadis,项目名称:vcv,代码行数:26,代码来源:sentry.py


示例8: PyLogConf

class PyLogConf (PyLog):
    def __init__ (self, conf):
        self.conf = conf
        self.client = Client (conf.RAVEN['dsn'])
        self.formatters = {}
        for k,v in self.conf.FILE_FORMATTERS.iteritems():
            if isinstance(v,str):
                raise ValueError ('Please use a list or a tuple for the file formatters values')
            self.formatters[k] = [item_import(i)() for i in v]
        dbname = os.path.join(os.path.dirname(conf.__file__),'pylogwatch.db')
        return super(PyLogConf, self).__init__ (self.conf.FILE_FORMATTERS.keys(), dbname = dbname)

    def get_file_signature(self, fname):
        maxcount = 10
        count = 0
        result = []
        with open(fname) as f:
            while count < maxcount:
                result.append(f.readline())
                count+=1
        return result

    def process_lines (self, fname, lines):
        for line in lines:
            paramdict = {}
            data = {'event_type':'Message', 'message': line.replace('%','%%'), 'data' :{'logger':fname}}
            for fobj in self.formatters[fname]:
                fobj.format_line(line, data, paramdict)
            if not data.get('do_not_send', False):
                if paramdict:
                    data['params'] = tuple([paramdict[i] for i in sorted(paramdict.keys())])
                if self.conf.DEBUG:
                    print data
                self.client.capture(**data)
开发者ID:abulte,项目名称:pylogwatch,代码行数:34,代码来源:logwlib.py


示例9: process

    def process(self, record):
        if match_record(self.rules_tree, record):
            dsn = self.dsns.get(record.application)
            if dsn is None:
                projects = requests.get("%s/api/0/projects/" % self.url,
                                        auth=self.auth).json()
                for project in projects:
                    if project["name"] == record.application:
                        break
                else:
                    project = requests.post("%s/api/0/teams/%s/%s/projects/" % (self.url,
                                                                                self.organization,
                                                                                self.team),
                                            auth=self.auth,
                                            headers={"Content-type": "application/json"},
                                            data=json.dumps({"name": record.application})).json()

                for key in requests.get("%s/api/0/projects/%s/%s/keys/" % (self.url,
                                                                           self.organization,
                                                                           project["slug"]),
                                        auth=self.auth).json():
                    dsn = key["dsn"]["secret"]
                    self.dsns[record.application] = dsn

            client = Client(dsn, raise_send_errors=True)
            client.capture("raven.events.Message",
                           message=record.msg,
                           formatted=record.explanation or record.msg,
                           data={"logger": record.logger},
                           date=record.datetime,
                           extra=record._asdict())
开发者ID:themylogin,项目名称:themylog,代码行数:31,代码来源:sentry.py


示例10: send_to_sentry

 def send_to_sentry(self):
     """
     Send this error to sentry where it will be stored and aggregated.
     """
     print self.stack_trace
     log_level = self.log_level
     filename = get_filename(self.js_url)
     
     data={
         filename: {
             'url': self.js_url,
             'data': {},
             'query_string': '...',
             'method': 'POST',
         },
         'logger': 'front_end',
         'site': 'site.name',
     }
     
     if self.extra:
         data.update({"extra": json.loads(self.extra)})
             
     client = Client(settings.SENTRY_DSN)
     client.capture(
         "Message",
         message=self.message,
         data=data,
     )
开发者ID:Senzari,项目名称:django-jhouston,代码行数:28,代码来源:models.py


示例11: error_trigger

def error_trigger(request):
    context = {}
    if request.method == 'POST':
        form = forms.TriggerErrorForm(request.POST)
        if form.is_valid():
            if form.cleaned_data['capture_with_raven']:
                try:
                    dsn = settings.RAVEN_CONFIG['dsn']
                except AttributeError:
                    messages.error(
                        request,
                        "No settings.RAVEN_CONFIG['dsn'] set up"
                    )
                    return redirect('manage:error_trigger')

                client = Client(dsn)
                try:
                    raise NameError(form.cleaned_data['message'])
                except NameError:
                    messages.info(
                        request,
                        str(client.captureException())
                    )
                return redirect('manage:error_trigger')

            raise NameError(
                'MANUAL ERROR TRIGGER: %s' % form.cleaned_data['message']
            )
    else:
        form = forms.TriggerErrorForm()

    context['form'] = form

    return render(request, 'manage/error_trigger.html', context)
开发者ID:akatsoulas,项目名称:airmozilla,代码行数:34,代码来源:errors.py


示例12: SentryPlugin

class SentryPlugin(object):
    name = 'sentry'

    def __init__(self, dsn, **kwargs):
        self.client = None
        self.kwargs = kwargs
        self.dsn = dsn

    def setup(self,app):
        for other in app.plugins:
            if not isinstance(other, SentryPlugin):
                continue
        if self.client is None:
            self.client = Client(self.dsn, **self.kwargs)

    def apply(self,callback,context):
        def wrapper(*args,**kwargs):
            try:
                rv = callback(*args, **kwargs)
            except Exception, e:
                if not isinstance(e, HTTPError):
                    self.client.captureException()
                raise
            return rv
        return wrapper
开发者ID:frm-system,项目名称:frm,代码行数:25,代码来源:bottle_sentry.py


示例13: run_from_argv

    def run_from_argv(self, argv):
        if len(argv) <= 2 or argv[2] in ['-h', '--help']:
            stdout = OutputWrapper(sys.stdout)
            stdout.write(self.usage(argv[1]))
            sys.exit(1)

        subcommand_class = self._get_subcommand_class(argv[2])
        parser = self.create_parser(argv[0], argv[2], subcommand_class)
        if hasattr(self, 'use_argparse') and self.use_argparse:
            subcommand_class.add_arguments(parser)
            options = parser.parse_args(argv[3:])
            cmd_options = vars(options)
            args = cmd_options.pop('args', ())
        else:
            options, args = parser.parse_args(argv[3:])
        handle_default_options(options)
        try:
            subcommand_class.execute(*args, **options.__dict__)
        except Exception as e:
            if not isinstance(e, CommandError):
                if hasattr(settings, 'SENTRY_DSN'):
                    dsn = settings.SENTRY_DSN
                elif hasattr(settings, 'RAVEN_CONFIG'):
                    dsn = settings.RAVEN_CONFIG.get('dsn')
                else:
                    raise
                sentry = Client(dsn)
                if not sentry.is_enabled():
                    raise
                sentry.get_ident(sentry.captureException())

            self._write_error_in_stderr(e)
开发者ID:IlyaSemenov,项目名称:django-maven,代码行数:32,代码来源:maven.py


示例14: connect_to_sentry

def connect_to_sentry() -> RavenClient:
    """Connect to Sentry and enable sys hook for pyinstaller failures"""
    with open("sentry") as fi:
        link = fi.read().strip()
    raven = RavenClient(link)
    raven.install_sys_hook()
    return raven
开发者ID:RedFantom,项目名称:GSF-Parser-Public,代码行数:7,代码来源:main.py


示例15: handle

    def handle(self, *args, **kwargs):
        if args:
            pk = args[0]
            feed = UniqueFeed.objects.get(pk=pk)
            return update_feed(feed.url, use_etags=False)

        # This command is run every 5 minutes. Don't queue more than
        # 5/45 = a ninth of the total number of feeds.
        limit = UniqueFeed.objects.count() / 9

        uniques = UniqueFeed.objects.filter(
            muted=False,
        ).order_by('last_update')[:limit]

        for unique in uniques:
            try:
                if unique.should_update():
                    enqueue(update_feed, unique.url, timeout=20)
            except Exception:  # We don't know what to expect, and anyway
                               # we're reporting the exception
                if settings.DEBUG or not hasattr(settings, 'SENTRY_DSN'):
                    raise
                else:
                    client = Client(dsn=settings.SENTRY_DSN)
                    client.captureException()
        connection.close()
开发者ID:magopian,项目名称:feedhq,代码行数:26,代码来源:updatefeeds.py


示例16: save

 def save(self, *a, **k):
     """
     Don't save to the database, send to sentry instead.
     """
     log_level = self.log_level
     filename = get_filename(self.js_url)
     
     data={
         filename: {
             'url': self.js_url,
             'data': {},
             'query_string': '...',
             'method': 'POST',
         },
         'logger': 'front_end',
         'site': 'site.name',
     }
     
     if self.extra:
         data.update({"extra": json.loads(self.extra)})
             
     client = Client(settings.SENTRY_DSN)
     client.capture(
         "Message",
         message=self.message,
         data=data,
     )
开发者ID:priestc,项目名称:django-jhouston,代码行数:27,代码来源:models.py


示例17: process_jobs

    def process_jobs(self, beanstalk):
        while True:
            logger.debug("Beanstalk connection established, waiting for jobs")
            job = beanstalk.reserve()
            job_name = job.stats()["tube"]
            if job_name in self.jobs:
                logger.debug("Calling %s with arg: %s" % (job_name, job.body))
                try:
                    connection = db.connections["default"]
                    if connection.connection:
                        try:
                            connection.connection.ping()
                        except OperationalError as e:
                            connection.close()

                    flush_transaction()
                    self.jobs[job_name](job.body)
                except Exception, e:
                    tp, value, tb = sys.exc_info()
                    logger.error('Error while calling "%s" with arg "%s": ' "%s" % (job_name, job.body, e))
                    logger.debug("%s:%s" % (tp.__name__, value))
                    logger.debug("\n".join(traceback.format_tb(tb)))

                    client = Client(dsn=settings.RAVEN_CONFIG["dsn"])
                    client.captureMessage(str(e), stack=True, level=logging.ERROR)

                    job.bury()
                else:
                    job.delete()
            else:
                job.release()
开发者ID:Govexec,项目名称:django-beanstalkd,代码行数:31,代码来源:beanstalk_worker.py


示例18: PyLogConf

class PyLogConf (PyLog):
    def __init__ (self, conf):
        """
        Initialize object based on the provided configuration
        """
        self.conf = conf
        self.client = Client (conf.RAVEN['dsn'])
        self.formatters = {}
        for k,v in self.conf.FILE_FORMATTERS.iteritems():
            if isinstance(v,str):
                raise ValueError ('Please use a list or a tuple for the file formatters values')
            self.formatters[k] = [item_import(i)() for i in v]
        dbname = os.path.join(os.path.dirname(conf.__file__),'pylogwatch.db')
        return super(PyLogConf, self).__init__ (self.conf.FILE_FORMATTERS.keys(), dbname = dbname)

    def process_lines (self, fname, fileobject, lines):
        """Main workhorse. Called with the filename that is being logged and an iterable of lines"""
        for line in lines:
            paramdict = {}
            data = {'event_type':'Message', 'message': line.replace('%','%%'), 'data' :{'logger':fname}}
            for fobj in self.formatters[fname]:
                fobj.format_line(line, data, paramdict)
            if not data.pop('_do_not_send', False): # Skip lines that have the '_do_not_send' key
                if paramdict:
                    data['params'] = tuple([paramdict[i] for i in sorted(paramdict.keys())])
                if self.conf.DEBUG:
                    print data
                self.client.capture(**data)
                self.update_bytes(fname, fileobject.tell())
开发者ID:ajeebkp23,项目名称:pylogwatch,代码行数:29,代码来源:logwlib.py


示例19: main

def main():
    root = logging.getLogger('sentry.errors')
    root.setLevel(logging.DEBUG)
    root.addHandler(logging.StreamHandler())

    parser = OptionParser()
    parser.add_option("--data", action="callback", callback=store_json,
                      type="string", nargs=1, dest="data")
    (opts, args) = parser.parse_args()

    dsn = ' '.join(args[1:]) or os.environ.get('SENTRY_DSN')
    if not dsn:
        print "Error: No configuration detected!"
        print "You must either pass a DSN to the command, or set the SENTRY_DSN environment variable."
        sys.exit(1)

    print "Using DSN configuration:"
    print " ", dsn
    print

    client = Client(dsn, include_paths=['raven'])

    print "Client configuration:"
    for k in ('servers', 'project', 'public_key', 'secret_key'):
        print '  %-15s: %s' % (k, getattr(client, k))
    print

    if not all([client.servers, client.project, client.public_key, client.secret_key]):
        print "Error: All values must be set!"
        sys.exit(1)

    print 'Sending a test message...',
    ident = client.get_ident(client.captureMessage(
        message='This is a test message generated using ``raven test``',
        data=opts.data or {
            'culprit': 'raven.scripts.runner',
            'logger': 'raven.test',
            'sentry.interfaces.Http': {
                'method': 'GET',
                'url': 'http://example.com',
            }
        },
        level=logging.INFO,
        stack=True,
        extra={
            'user': pwd.getpwuid(os.geteuid())[0],
            'loadavg': os.getloadavg(),
        }
    ))

    if client.state.did_fail():
        print 'error!'
        return False

    print 'success!'
    print
    print 'The test message can be viewed at the following URL:'
    url = client.servers[0].split('/api/store/', 1)[0]
    print '  %s/%s/search/?q=%s' % (url, client.project, ident)
开发者ID:lptorres,项目名称:noah-inasafe,代码行数:59,代码来源:runner.py


示例20: __init__

 def __init__(self, sentry_dsn, descriptor=None, data_limit=100, sentry_client_kwargs=None):
     
     if sentry_client_kwargs:
         self.sentry_client = SentryClient(dsn=sentry_dsn, **sentry_client_kwargs)
     else:
         self.sentry_client = SentryClient(dsn=sentry_dsn)
         
     super(ErrorSentry, self).__init__(descriptor=descriptor, data_limit=data_limit)
开发者ID:zagaran,项目名称:cronutils,代码行数:8,代码来源:error_handler.py



注:本文中的raven.Client类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python base.Client类代码示例发布时间:2022-05-26
下一篇:
Python raven.load函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap