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是开源软件,您的贡献非常受欢迎。
ForkGithub上的存储库并做出您的更改。
为您的更改编写测试,并遵循以下规则:PEP8、PEP257和Python的Zen。
请确保将自己添加到AUTHORS文件中并提交一个pull request。
在运行测试时,请使用PyTest扩展 pytest-cov、pytest-pep8 和 pytest-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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7e1f376640ec22c94be320c666ee27cf27ef2cc3b3c2501446505db334d660f0 |
|
MD5 | 0fd0482c4d4eb152d49d54168420b9a0 |
|
BLAKE2b-256 | 6e7c7cc714933fa26579025177869680c4b5d846753fbecdf23d19ee73f90b49 |