Logstash 和 StackDriver 的 Python 日志记录处理程序。
项目描述
温度记录器
Temlogger是一个将日志发送到 ELK、StackDriver(Google Cloud Logging)的库。
特征
Temlogger 为您提供:
灵活地将日志发送到 StackDriver(Google Cloud Logging)或 ELK(Elastic、Logstash 和 Kibana)。
注册事件处理程序(全局和每个记录器)以在发送给提供者之前更新日志条目。
98% 的测试覆盖率。
日志记录提供程序
日志存储(ELK)
堆栈驱动程序(谷歌堆栈驱动程序)
默认(不发送日志)
要求
蟒蛇 3.6+
python3-logstash == 0.4.80
谷歌云日志>=1.14.0,<2
安装
pip install -e git+https://github.com/tembici/temlogger.git#egg=temlogger
使用它来指定标签版本:
pip install -e git+https://github.com/tembici/temlogger.git@<tag-version>#egg=temlogger
用法
使用环境变量:
export TEMLOGGER_PROVIDER='logstash'
export TEMLOGGER_URL='localhost'
export TEMLOGGER_PORT='5000'
export TEMLOGGER_ENVIRONMENT='staging'
import sys
import temlogger
test_logger = temlogger.getLogger('python-logstash-logger')
test_logger.error('python-logstash: test logstash error message.')
test_logger.info('python-logstash: test logstash info message.')
test_logger.warning('python-logstash: test logstash warning message.')
# add extra field to logstash message
extra = {
'test_string': 'python version: ' + repr(sys.version_info),
'test_boolean': True,
'test_dict': {'a': 1, 'b': 'c'},
'test_float': 1.23,
'test_integer': 123,
'test_list': [1, 2, '3'],
}
test_logger.info('temlogger: test with extra fields', extra=extra)
将参数直接传递给 temlogger 的示例:
import sys
import temlogger
temlogger.config.set_provider('logstash')
temlogger.config.set_url('localhost')
temlogger.config.set_port(5000)
temlogger.config.set_environment('staging')
test_logger = temlogger.getLogger('python-logstash-logger')
test_logger.info('python-logstash: test logstash info message.')
# add extra field to logstash message
extra = {
'test_string': 'python version: ' + repr(sys.version_info),
'test_boolean': True,
'test_dict': {'a': 1, 'b': 'c'},
'test_float': 1.23,
'test_integer': 123,
'test_list': [1, 2, '3'],
}
test_logger.info('temlogger: test with extra fields', extra=extra)
StackDriver 示例
如何设置“GOOGLE_APPLICATION_CREDENTIALS”环境变量的文档 < https://cloud.google.com/docs/authentication/getting-started >`__
export TEMLOGGER_PROVIDER='stackdriver'
export GOOGLE_APPLICATION_CREDENTIALS='<path to json>'
import sys
import temlogger
test_logger = temlogger.getLogger('python-stackdriver-logger')
test_logger.info('python-stackdriver: test stackdriver info message.')
# add extra field to stackdriver message
extra = {
'test_string': 'python version: ' + repr(sys.version_info),
'test_boolean': True,
'test_dict': {'a': 1, 'b': 'c'},
'test_float': 1.23,
'test_integer': 123,
'test_list': [1, 2, '3'],
}
test_logger.info('temlogger: test with extra fields', extra=extra)
与 Django 一起使用
修改您的settings.py以将 temlogger 与 Django 的日志记录集成:
import temlogger
host = 'localhost'
temlogger.config.set_provider('logstash')
temlogger.config.set_url('localhost')
temlogger.config.set_port(5000)
temlogger.config.set_environment('staging')
然后在其他文件中,例如views.py,models.py你可以这样使用:
import temlogger
test_logger = temlogger.getLogger('python-logger')
事件处理程序
此功能允许在将日志发送到日志记录提供程序之前注册处理程序。
全局注册事件处理程序
建议尽早初始化事件处理程序,例如在django的settings.py中。下面的示例显示了如何在全局范围内注册处理程序add_tracker_id_to_message。
import temlogger
temlogger.config.set_provider('logstash')
temlogger.config.setup_event_handlers([
'temlogger.tests.base.add_tracker_id_to_message',
])
logger = temlogger.getLogger('python-logger')
extra = {
'app_name': 'tembici'
}
logger.info('test with extra fields', extra=extra)
为每个记录器注册事件处理程序
下面的示例显示了如何为一个记录器注册处理程序add_user_id_key。
import temlogger
def add_user_id_key(message):
message['user_id'] = 'User Id'
return message
temlogger.config.set_provider('logstash')
logger = temlogger.getLogger('python-logger', event_handlers=[
'temlogger.tests.base.add_tracker_id_to_message',
add_user_id_key
])
extra = {
'app_name': 'tembici'
}
logger.info('test with extra fields', extra=extra)
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
temlogger-test-0.1.0b0.tar.gz
(9.2 kB
查看哈希)
内置分布
temlogger_test-0.1.0b0-py3-none-any.whl
(14.5 kB
查看哈希)
关
temlogger_test -0.1.0b0-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | c9597b5982479d92635137ee9f1df334b2d4ae118cfe5b0da1f455fd3a734070 |
|
| MD5 | 22cd1498b65146c0ac3f581f7ecc65c3 |
|
| 布莱克2-256 | fd8fb166b14f5f7715f7e8adbbf1424964e45b974694645f0d67b2ca94a2584e |