Skip to main content

一个 python 日志处理程序,通过 Telegram Bot Api 发送日志。

项目描述

https://img.shields.io/pypi/status/python-telegram-handler.svg https://img.shields.io/pypi/pyversions/python-telegram-handler.svg https://badge.fury.io/py/python-telegram-handler.svg https://travis-ci.org/sashgorokhov/python-telegram-handler.svg?branch=master https://codecov.io/github/sashgorokhov/python-telegram-handler/coverage.svg?branch=master 代码气候 https://img.shields.io/github/license/sashgorokhov/python-telegram-handler.svg

一个 python 日志处理程序,通过 Telegram Bot Api 发送日志

安装

通过点子:

pip install python-telegram-handler

用法

注册一个新的电报机器人并获得一个身份验证令牌。(此处的说明https://core.telegram.org/bots#3-how-do-i-create-a-bot

之后,您必须获得一个chat_id。您可以使用包含的简单脚本来做到这一点。与新创建的机器人开始新的对话,给它写点东西(首先发起对话很重要)。

此外,处理程序可以自动检索chat_id。这将在处理程序初始化时完成。但是您仍然必须开始与机器人对话。请注意:如果程序停止、服务器重新启动或发生其他事情 - 处理程序将尝试从电报中检索聊天 ID,如果找不到来自您的新消息,则可能会失败。所以我建议你使用下面的脚本来获取聊天 ID。

然后运行一个命令:

python -m telegram_handler <your token here>

如果一切正常,一个chat_id将被打印到标准输出。

使用tokenchat_id,以您想要的方式配置日志处理程序。例如,使用 dictConfig:

{
    'version': 1,
    'handlers': {
        'telegram': {
            'class': 'telegram_handler.TelegramHandler',
            'token': 'your token',
            'chat_id': 'chat id'
        }
    },
    'loggers': {
        'my_logger': {
            'handlers': ['telegram'],
            'level': 'DEBUG'
        }
    }
}

格式化

目前发送消息的格式很简单:<code>%(asctime)s</code> <b>%(levelname)s</b>\nFrom %(name)s:%(funcName)s\n% (message)s 异常回溯将被格式化为预先格式化的固定宽度代码块。(https://core.telegram.org/bots/api#html-style

如果要调整它,请使用所需的格式字符串配置电报处理程序.HtmlFormatter。使用 dictConfig:

...
{
    'formatters': {
        'telegram': {
            'class': 'telegram_handler.HtmlFormatter',
            'fmt': '%(levelname)s %(message)s'
        }
    }
    'handlers': {
        'telegram': {
            'class': 'telegram_handler.TelegramHandler',
            'formatter': 'telegram',
            'token': 'your token',
            'chat_id': 'chat id'
        }
    }
}
...

如果您愿意,可以在 HtmlFormatter 中启用表情符号。只需在 HtmlFormatter 设置中指定use_emoji=True 即可。这将在 levelname 中添加一个 :white_circle: 用于 DEBUG,:large_blue_circle: 用于 INFO,以及 :red_circle: 用于 WARNING 和 ERROR 级别。

代理人

如果您必须在 Telegram 服务器被 gowrnment 阻止的国家/地区使用此软件包,您可以在 config.xml 中指定代理 url。使用 dictConfig:

...
{
    'handlers': {
        'telegram': {
            'class': 'telegram_handler.TelegramHandler',
            'formatter': 'telegram',
            'token': 'your token',
            'chat_id': 'chat id',
            'proxies': {
                'http': 'socks5://user:pass@host:port',
                'https': 'socks5://user:pass@host:port'
            }
        }
    }
}
...

重要的!如果您打算使用socks代理,请确保您安装了带有socks支持的requests包:

pip install requests[socks]

历史

2.2.0 (2019-08-19)

  • 添加代理支持 (#20) (by )

2.1.0 (2019-04-25)

  • 如果消息太大,则将消息作为文件发送

  • MarkdownFormatter 中的修复

  • HTMLFormatter 中的修复

  • 聊天 ID 检索修复

  • 从测试中删除 py33 支持

  • 更新 setup.py 分类器

  • 删除了 HtmlFormatter 中的 print()-calls (#12) (by Lukas Garberg)

2.0.2 (2017-11-20)

  • 修复 HtmlFormatter.format 中的 TypeError(通过 tompipen)

2.0 (2017-03-01)

  • 重构 HtmlFormatter 和 MarkdownFormatter

  • 重构的 TelegramHandler

  • 不再需要调用命令来获取 chat_id - 它将在处理程序初始化时自动获取

  • 重写测试

  • 在 HtmlFormatter 中转义 LogRecord 的东西

  • 在 HtmlFormatter 中添加了可选的表情符号。

1.1.3 (2016-09-22)

  • 未设置 StyledFormatter 的 escape_message 字段(@ihoru)

1.1.2 (2016-05-13)

  • 固定 setup.py 需要选项(更改为 install_requires)

1.1.1 (2016-04-20)

  • 使用 HTML 格式化程序作为电报处理程序的默认格式化程序

1.1.0 (2016-04-20)

  • 引入 HTML 格式化程序

  • 添加了日志文本转义(关闭#3)

  • 添加了请求超时设置(关闭 #1)

  • 捕获并记录所有请求及其异常(关闭 #2)

1.0.0 (2016-04-19)

  • 第一个 PyPi 版本

0.1.0 (2016-04-19)

  • 初始发行

项目详情


下载文件

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

源分布

python-telegram-handler-2.2.1.tar.gz (6.0 kB 查看哈希)

已上传 source