Skip to main content

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.pymodels.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 查看哈希)

已上传 source

内置分布

temlogger_test-0.1.0b0-py3-none-any.whl (14.5 kB 查看哈希

已上传 py3