本文整理汇总了Python中raven.utils.encoding.to_string函数的典型用法代码示例。如果您正苦于以下问题:Python to_string函数的具体用法?Python to_string怎么用?Python to_string使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了to_string函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_checksum_from_event
def get_checksum_from_event(event):
for interface in event.interfaces.itervalues():
result = interface.get_hash()
if result:
hash = hashlib.md5()
for r in result:
hash.update(to_string(r))
return hash.hexdigest()
return hashlib.md5(to_string(event.message)).hexdigest()
示例2: emit
def emit(self, record):
try:
# Beware to python3 bug (see #10805) if exc_info is (None, None, None)
self.format(record)
if not self.can_record(record):
print(to_string(record.message), file=sys.stderr)
return
return self._emit(record)
except Exception:
print("Top level Sentry exception caught - failed creating log record", file=sys.stderr)
print(to_string(record.msg), file=sys.stderr)
print(to_string(traceback.format_exc()), file=sys.stderr)
示例3: emit
def emit(self, record):
try:
# Beware to python3 bug (see #10805) if exc_info is (None, None, None)
self.format(record)
# Avoid typical config issues by overriding loggers behavior
if record.name.startswith(('sentry.errors', 'raven')) or record.module.startswith('raven'):
print(to_string(record.message), sys.stderr)
return
return self._emit(record)
except Exception:
print("Top level Sentry exception caught - failed creating log record", sys.stderr)
print(to_string(record.msg), sys.stderr)
print(to_string(traceback.format_exc()), sys.stderr)
示例4: emit
def emit(self, record):
try:
# Avoid typical config issues by overriding loggers behavior
if record.channel.startswith('sentry.errors'):
print >> sys.stderr, to_string(self.format(record))
return
return self._emit(record)
except Exception:
print >> sys.stderr, "Top level Sentry exception caught - failed creating log record"
print >> sys.stderr, to_string(record.msg)
print >> sys.stderr, to_string(traceback.format_exc())
try:
self.client.captureException()
except Exception:
pass
示例5: emit
def emit(self, record):
try:
# Avoid typical config issues by overriding loggers behavior
if record.channel.startswith(('sentry.errors', 'raven')):
print(to_string(self.format(record)), file=sys.stderr)
return
return self._emit(record)
except Exception:
if self.client.raise_send_errors:
raise
print("Top level Sentry exception caught - failed creating log record", file=sys.stderr)
print(to_string(record.msg), file=sys.stderr)
print(to_string(traceback.format_exc()))
try:
self.client.captureException()
except Exception:
pass
示例6: emit
def emit(self, record):
try:
import os
self.client.http_context(self.get_http_context(os.environ))
# Beware to python3 bug (see #10805) if exc_info is (None, None, None)
self.format(record)
if not self.can_record(record):
print(to_string(record.message), file=sys.stderr)
return
return self._emit(record)
except Exception:
if self.client.raise_send_errors:
raise
print("Top level Sentry exception caught - failed creating log record", file=sys.stderr)
print(to_string(record.msg), file=sys.stderr)
print(to_string(traceback.format_exc()), file=sys.stderr)
示例7: emit
def emit(self, record):
try:
self.format(record)
# Avoid typical config issues by overriding loggers behavior
if record.channel.startswith("sentry.errors"):
print(to_string(record.message), file=sys.stderr)
return
return self._emit(record)
except Exception:
print("Top level Sentry exception caught - failed creating log record", file=sys.stderr)
print(to_string(record.msg), file=sys.stderr)
print(to_string(traceback.format_exc()), file=sys.stderr)
try:
self.client.capture("Exception")
except Exception:
pass
示例8: emit
def emit(self, record):
# from sentry.client.middleware import SentryLogMiddleware
# # Fetch the request from a threadlocal variable, if available
# request = getattr(SentryLogMiddleware.thread, 'request', None)
self.format(record)
# Avoid typical config issues by overriding loggers behavior
if record.channel.startswith('sentry.errors'):
print >> sys.stderr, to_string(record.message)
return
try:
return self._emit(record)
except Exception:
print >> sys.stderr, "Top level Sentry exception caught - failed creating log record"
print >> sys.stderr, to_string(record.msg)
print >> sys.stderr, to_string(traceback.format_exc())
try:
self.client.capture('Exception')
except Exception:
pass
示例9: from_string
def from_string(cls, value, transport=None, transport_registry=None):
# in Python 2.x sending the DSN as a unicode value will eventually
# cause issues in httplib
if PY2:
value = to_string(value)
url = urlparse(value.strip())
if url.scheme not in ("http", "https"):
warnings.warn(
"Transport selection via DSN is deprecated. You should explicitly pass the transport class to Client() instead."
)
if transport is None:
if not transport_registry:
from raven.transport import TransportRegistry, default_transports
transport_registry = TransportRegistry(default_transports)
if not transport_registry.supported_scheme(url.scheme):
raise InvalidDsn(ERR_UNKNOWN_SCHEME.format(url.scheme, value))
transport = transport_registry.get_transport_cls(url.scheme)
netloc = url.hostname
if url.port:
netloc += ":%s" % url.port
path_bits = url.path.rsplit("/", 1)
if len(path_bits) > 1:
path = path_bits[0]
else:
path = ""
project = path_bits[-1]
if not all([netloc, project, url.username, url.password]):
raise InvalidDsn("Invalid Sentry DSN: %r" % url.geturl())
base_url = "%s://%s%s" % (url.scheme.rsplit("+", 1)[-1], netloc, path)
return cls(
base_url=base_url,
project=project,
public_key=url.username,
secret_key=url.password,
options=dict(parse_qsl(url.query)),
transport=transport,
)
示例10: serialize
def serialize(self, value):
return dict((to_string(k), self.recurse(v)) for k, v in value.iteritems())
示例11: build_msg
#.........这里部分代码省略.........
if stack is True:
frames = iter_stack_frames()
else:
frames = stack
data.update({
'sentry.interfaces.Stacktrace': {
'frames': get_stack_info(frames,
list_max_length=self.list_max_length,
string_max_length=self.string_max_length)
},
})
if 'sentry.interfaces.Stacktrace' in data:
if self.include_paths:
for frame in data['sentry.interfaces.Stacktrace']['frames']:
if frame.get('in_app') is not None:
continue
path = frame.get('module')
if not path:
continue
if path.startswith('raven.'):
frame['in_app'] = False
else:
frame['in_app'] = (any(path.startswith(x)
for x in self.include_paths)
and not any(path.startswith(x)
for x in self.exclude_paths))
if not culprit:
culprit = get_culprit(data['sentry.interfaces.Stacktrace']['frames'])
if not data.get('level'):
data['level'] = kwargs.get('level') or logging.ERROR
if not data.get('server_name'):
data['server_name'] = self.name
if not data.get('modules'):
data['modules'] = self.get_module_versions()
data['tags'] = tags or {}
data.setdefault('extra', {})
data.setdefault('level', logging.ERROR)
# Add extra context
if self.extra:
for k, v in self.extra.iteritems():
data['extra'].setdefault(k, v)
for k, v in extra.iteritems():
data['extra'][k] = v
if culprit:
data['culprit'] = culprit
if not data.get('checksum'):
checksum_bits = handler.get_hash(data)
else:
checksum_bits = data['checksum']
if isinstance(checksum_bits, (list, tuple)):
checksum = hashlib.md5()
for bit in checksum_bits:
checksum.update(to_string(bit))
checksum = checksum.hexdigest()
else:
checksum = checksum_bits
data['checksum'] = checksum
# Run the data through processors
for processor in self.get_processors():
data.update(processor.process(data))
if 'message' not in data:
data['message'] = handler.to_string(data)
data.setdefault('project', self.project)
# Legacy support for site attribute
site = data.pop('site', None) or self.site
if site:
data['tags'].setdefault('site', site)
# Make sure all data is coerced
data = self.transform(data)
# It's important date is added **after** we serialize
data.update({
'timestamp': date,
'time_spent': time_spent,
'event_id': event_id,
'platform': PLATFORM_NAME,
})
return data
示例12: serialize
def serialize(self, value, **kwargs):
list_max_length = kwargs.get("list_max_length", float("inf"))
return dict(
(to_string(k), self.recurse(v, **kwargs))
for n, (k, v) in itertools.takewhile(lambda x: x[0] < list_max_length, enumerate(value.items()))
)
示例13: capture
#.........这里部分代码省略.........
:param extra: a dictionary of additional standard metadata
:param culprit: a string representing the cause of this event (generally a path to a function)
:return: a 32-length string identifying this event
"""
if data is None:
data = {}
if extra is None:
extra = {}
if not date:
date = datetime.datetime.utcnow()
if stack is None:
stack = self.auto_log_stacks
if '.' not in event_type:
# Assume it's a builtin
event_type = 'raven.events.%s' % event_type
handler = self.get_handler(event_type)
result = handler.capture(**kwargs)
# data (explicit) culprit takes over auto event detection
culprit = result.pop('culprit', None)
if data.get('culprit'):
culprit = data['culprit']
for k, v in result.iteritems():
if k not in data:
data[k] = v
if stack and 'sentry.interfaces.Stacktrace' not in data:
if stack is True:
frames = iter_stack_frames()
else:
frames = stack
data.update({
'sentry.interfaces.Stacktrace': {
'frames': varmap(lambda k, v: shorten(v,
string_length=self.string_max_length, list_length=self.list_max_length),
get_stack_info(frames))
},
})
if 'sentry.interfaces.Stacktrace' in data and not culprit:
culprit = get_culprit(data['sentry.interfaces.Stacktrace']['frames'], self.include_paths, self.exclude_paths)
if not data.get('level'):
data['level'] = logging.ERROR
data['modules'] = get_versions(self.include_paths)
data['server_name'] = self.name
data.setdefault('extra', {})
data.setdefault('level', logging.ERROR)
# Shorten lists/strings
for k, v in extra.iteritems():
data['extra'][k] = shorten(v, string_length=self.string_max_length, list_length=self.list_max_length)
if culprit:
data['culprit'] = culprit
if 'checksum' not in data:
checksum_bits = handler.get_hash(data)
else:
checksum_bits = data['checksum']
if isinstance(checksum_bits, (list, tuple)):
checksum = hashlib.md5()
for bit in checksum_bits:
checksum.update(to_string(bit))
checksum = checksum.hexdigest()
else:
checksum = checksum_bits
data['checksum'] = checksum
# create ID client-side so that it can be passed to application
event_id = uuid.uuid4().hex
# Run the data through processors
for processor in self.get_processors():
data.update(processor.process(data))
# Make sure all data is coerced
data = transform(data)
if 'message' not in data:
data['message'] = handler.to_string(data)
data.update({
'timestamp': date,
'time_spent': time_spent,
'event_id': event_id,
})
data.setdefault('project', self.project)
data.setdefault('site', self.site)
self.send(**data)
return (event_id, checksum)
示例14: md5_from_hash
def md5_from_hash(hash_bits):
result = md5()
for bit in hash_bits:
result.update(to_string(bit))
return result.hexdigest()
示例15: serialize
def serialize(self, value, **kwargs):
string_max_length = kwargs.get('string_max_length', None)
return to_string(value)[:string_max_length]