관리-도구
편집 파일: __init__.py
# coding=utf-8 # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT import logging from clcommon.utils import get_rhn_systemid_value, get_username from clcommon.lib.network import get_ip_addr, get_hostname from clsentry.client import UserlandClient from clsentry.utils import get_pkg_version from raven.handlers.logging import SentryHandler from raven.conf import setup_logging CLLIB_DSN = 'https://9713d1296f804031b058b8f2d789d7ac:8ddacae32d8246cf8b25cf826bf3fc0a@cl.sentry.cloudlinux.com/12' __all__ = ('init_sentry_client', 'init_cllib_sentry_client') def init_sentry_client(project, release, dsn, handle=True, custom_length=None): """ Create generic sentry client and install logging hooks """ sentry = UserlandClient(dsn, release=release) # set user context settings, like id or email sentry.user_context({ 'id': get_rhn_systemid_value('system_id') or get_ip_addr(get_hostname()) or get_hostname() or get_username() }) # and also set project name sentry.tags['Project'] = project if custom_length: sentry.string_max_length = custom_length if handle: # setup handler, so we can track logging.error's handler = SentryHandler(sentry, level=logging.ERROR) setup_logging(handler) return sentry def init_cllib_sentry_client(): """ Create sentry client for cllib package and install logging hooks """ return init_sentry_client( 'python-cllib', release=get_pkg_version('alt-python27-cllib'), dsn=CLLIB_DSN)