跳转到主要内容

TaskWorkshop异常客户端

项目描述

TWLogger是TaskWorkshop异常跟踪系统的Python客户端。

安装

使用pip安装

$ pip install twlogger

或将twlogger添加到setup.py文件中所需的包列表。

配置

您可以将TWLogger用作WSGI中间件、日志处理器或直接通过客户端对象。对于每种配置类型,您需要传递API URL,或者您可以将其设置为TWLOGGER_URL环境变量。URL应如下所示

https://taskworkshop.com/exceptions/log/API_KEY

作为WSGI中间件

>>> from twlogger.middleware import TaskWorkshopMiddleware
>>> error_catching_wsgi_app = TaskWorkshopMiddleware(wsgi_app)

在PasteDeploy管道中

[filter:twlogger]
use = egg:TWLogger#twlogger
url = https://taskworkshop.com/exceptions/log/YOUR_TOKEN

[pipeline:main]
pipeline =
    twlogger
    your-app

[app:your-app]
...

作为日志处理器

>>> import logging
>>> from twlogger.handler import TWLoggerHandler
>>> handler = TWLoggerHandler()
>>> logger = logging.getLogger(__name__)
>>> logger.addHandler(handler)

使用logging.config.dictConfig

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,

    'formatters': {
        'console': {
            'format': ('%(asctime)s %(levelname)s '
                       '[%(name)s][%(threadName)s] %(message)s'),
        },
    },

    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
            'level': 'DEBUG',
            'formatter': 'console'
        },
        'twlogger': {
            'class': 'twlogger.handler.TWLoggerHandler',
            'url': 'https://taskworkshop.com/exceptions/log/YOUR_TOKEN',
            'level': 'ERROR',
        },
    },

    'loggers': {
        'root': {
            'handlers': ['console', 'twlogger'],
            'level': 'DEBUG',
            'propagate': True,
        },
        'twlogger': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'twlogger.error': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
    },
}

使用logging.config.fileConfig

[loggers]
keys = root, twlogger, twlogger_error

[handlers]
keys = console, twlogger

[formatters]
keys = console

[formatter_console]
format = %(asctime)s %(levelname)s [%(name)s][%(threadName)s] %(message)s

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = DEBUG
formatter = console

[handler_twlogger]
class = twlogger.handler.TWLoggerHandler
args = ('https://taskworkshop.com/exceptions/log/YOUR_TOKEN', )
level = ERROR
formatter = console

[logger_root]
handlers = console, twlogger
level = DEBUG

[logger_twlogger]
level = DEBUG
handlers = console
qualname = twlogger
propagate = 0

[logger_twlogger_error]
level = DEBUG
handlers = console
qualname = twlogger.error
propagate = 0

手动使用

日志记录器:处理异常

异常信息和额外数据将与事件一起提交。

>>> import logging
>>> logger = logging.getLogger(__name__)
>>> try:
...     x / y
... except ZeroDivisionError:
...     logger.exception('Division by zero!', extra={'x': x, 'y': y})

日志记录器:发送事件

您可以提交任何级别的事件

>>> import logging
>>> logger = logging.getLogger(__name__)
>>> logger.error('Some error')
>>> logger.warn('Some warning.')
>>> logger.info('Some info.', extra={'foo': 'bar'})

客户端:处理异常

>>> from twlogger.client import Client
>>> client = Client()
>>> try:
...     1 / 0
... except ZeroDivisionError:
...     client.capture_exception()
>>> try:
...     x / y
... except ZeroDivisionError:
...     client.capture_exception(x=x, y=y)

客户端:发送事件

>>> from twlogger.client import Client
>>> client = Client()
>>> client.log_event('info', 'Some info log',
...                  place='File: "/foo/bar.py", line: 71, in foo_bar')

问题和疑问

有错误吗?请创建GitHub上的问题!

https://github.com/TaskWorkshop/taskworkshop-logger-python/issues

贡献

TWLogger是开源软件,您的贡献非常受欢迎。

  1. 查找开放问题创建新问题,以开始关于功能想法或错误的讨论。

  2. ForkGithub上的存储库并做出您的更改。

  3. 为您的更改编写测试,并遵循以下规则:PEP8、PEP257和Python的Zen。

  4. 请确保将自己添加到AUTHORS文件中并提交一个pull request。

在运行测试时,请使用PyTest扩展 pytest-covpytest-pep8pytest-flakes

$ pip install pytest pytest-cov pytest-pep8 pytest-flakes
$ py.test --cov twlogger --cov-report term-missing --pep8 --flakes

许可证

TWLogger采用GPL版本2许可证。请参阅LICENSE文件。许可证可在https://gnu.ac.cn/licenses/gpl-2.0.txt找到

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

TWLogger-0.1.0.tar.gz (16.5 kB 查看哈希值)

上传时间 源代码

由以下支持