跳转到主要内容

适用于Python日志框架的更新、RFC5424兼容的syslog处理器

项目描述

Documentation Status https://img.shields.io/pypi/v/rfc5424-logging-handler.svg https://img.shields.io/pypi/pyversions/rfc5424-logging-handler.svg https://travis-ci.org/jobec/rfc5424-logging-handler.svg?branch=master https://codecov.io/github/jobec/rfc5424-logging-handler/coverage.svg?branch=master

适用于Python日志框架的更新、RFC5424兼容的syslog处理器。

功能

  • RFC 5424兼容。

  • Python日志适配器,便于发送rfc5424特定字段。

  • 无需复杂的格式化字符串。

  • TLS/SSL syslog支持。

  • 其他传输方式,如流(例如stderr、stdout、文件等)。

安装

Python包

pip install rfc5424-logging-handler

使用方法

安装后,您可以使用此包如下所示

import logging
from rfc5424logging import Rfc5424SysLogHandler

logger = logging.getLogger('syslogtest')
logger.setLevel(logging.INFO)

sh = Rfc5424SysLogHandler(address=('10.0.0.1', 514))
logger.addHandler(sh)

logger.info('This is an interesting message', extra={'msgid': 'some_unique_msgid'})

这将向syslog服务器发送以下消息

<14>1 2020-01-01T05:10:20.841485+01:00 myserver syslogtest 5252 some_unique_msgid - \xef\xbb\xbfThis is an interesting message

注意消息前面的UTF8字节顺序标记(BOM)。根据RFC 5424第6.4节,如果已知消息是UTF-8编码,则必须使用它,但仍有syslog接收器无法处理它。为了绕过这个限制,在初始化处理类时,将msg_as_utf8参数设置为False,如下所示

sh = Rfc5424SysLogHandler(address=('10.0.0.1', 514), msg_as_utf8=False)

有关更多示例,请参阅文档

变更日志

1.4.3 - 2019/05/19

变更

  • #34 允许企业ID包含子标识符。

修复

  • #31 修复TCP传输处理程序中失败连接尝试的处理。

1.4.2 - 2019/04/08

变更

  • #32 address现在也可以是一个列表,这使得从配置文件中加载设置成为可能。

添加

  • Python 3.7测试和支持。

1.4.1 - 2019/02/16

修复

  • #29 修复使用TLS连接时出现的AttributeError。

1.4.0 - 2019/01/30

添加

  • #27 使将日志记录到流作为备用传输成为可能。

  • 添加API文档。

变更

  • 将syslog设施和框架选项从RfcSysLogHandler类移动到模块级变量。 您可能需要调整对这些变量的引用。

1.3.0 - 2018/10/19

添加

  • #23 添加对TLS/SSL的支持

1.2.1 - 2018/09/21

修复

  • #21 结构化数据ID在注册时也附加了企业ID。

添加

  • #22 添加utc_timestamp参数,允许以UTC时间进行日志记录。

1.1.2 - 2018/02/03

修复

  • #15 当使用python 2.7将日志记录到/dev/log时,在本地syslog服务器重启时,连接永久丢失。

  • #16 消息的extra信息没有覆盖日志适配器实例中的信息。

1.1.1 - 2017/12/08

修复

  • #14 修复日志适配器中的extra参数处理。

1.1.0 - 2017/11/24

添加

  • 现在,对于记录处理器,msg参数可以省略,允许“仅结构化数据”消息。

修复

  • 当值不是NILVALUE时,正确设置hostname的自动值

  • 当值为None或空字符串时,syslog消息现在为空,符合RFC5424。

1.0.3 - 2017/10/08

没有功能上的更改。仅更改了文档。

添加

  • RFC5424的Logstash配置示例。

变更

  • 将大部分文档从readme文件中移出。

1.0.2 - 2017/08/31

修复

1.0.1 - 2017/08/30

添加

  • #12:现在可以发送syslog消息作为MSG-ANY,这将在发送消息时抑制UTF-8字节顺序标记(BOM)。

1.0.0 - 2017/05/30

变更

  • #10:Procid、appname和hostname现在可以按消息设置,既可以由处理程序设置,也可以由适配器设置

0.2.0 - 2017/01/27

修复

  • 更好的输入处理

  • 对无效输入进行更好的清理

0.1.0 - 2017/01/22

添加

  • 第4项#4:适配器类,以便更容易记录消息ID或结构化数据

  • 使用适配器类记录EMERGENCY、ALERT和NOTICE的syslog级别

  • 广泛的测试套件

0.0.2 - 2017/01/18

添加

  • #5 引入Python 2.7兼容性

0.0.1 - 2017/01/11

  • 初始发布

项目详情


下载文件

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

源代码分布

rfc5424-logging-handler-1.4.3.tar.gz (16.5 kB 查看哈希值)

上传时间 源代码

构建分布

rfc5424_logging_handler-1.4.3-py2.py3-none-any.whl (15.2 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面