通过telegram bot api发送日志的python日志处理程序。
python-telegram-handler的Python项目详细描述
通过telegram bot api发送日志的python日志处理程序
安装
通过PIP:
pip install python-telegram-handler
用法
注册一个新的电报机器人并获得一个authentication token。(此处说明https://core.telegram.org/bots#3-how-do-i-create-a-bot)
之后,您必须获得chat_id。您可以使用附带的简单脚本来实现这一点。使用新创建的bot启动新对话,并向其写入内容(首先启动对话很重要)。
此外,处理程序还可以自动检索chat_id。这将在处理程序初始化时完成。但你还是得和机器人开始对话。注意:如果程序停止,服务器重新启动,或者发生其他事情,处理程序将尝试从电报中检索聊天ID,如果找不到来自您的新消息,则可能会失败。因此,我建议您使用下面的脚本获取聊天ID。
然后运行命令:
python -m telegram_handler <your token here>
如果一切顺利,一个chat_id将被打印到stdout。
使用token和chat_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)
如果要调整它,请使用所需的格式字符串配置telegram_handler.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中启用emoji符号。只需在htmlformatter设置中指定使用emoji=true。 这将添加到levelname a:white_circle:用于调试,:large_blue_circle:用于信息,和:red_circle:用于警告和错误级别。
代理
如果必须在政府阻止电报服务器的国家内使用此包,则可以在配置中指定代理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代理,请确保安装了requestspackage和sockssupport:
pip install requests[socks]
历史
2.1.0(2019-04-25)
- 如果消息太大,则将其作为文件发送
- markdownformatter中的修复程序
- htmlformatter中的修复程序
- 聊天室ID检索修复程序
- 从测试中删除PY33支持
- 更新setup.py分类器
- 删除print()-调用htmlformatter(12)(由lukas garberg提供)
2.0.2(2017-11-20)
- 修复htmlformatter.format中的typeerror(由tompipen提供)
2.0(2017-03-01)
- 重构的htmlformatter和markdownformatter
- 重构的电报处理程序
- 无需再调用命令来获取聊天室ID—它将在handler init上自动获取
- 重写测试
- 在htmlformatter中转义日志记录
- 在htmlformatter中添加了可选的emoji符号。
1.1.3(2016-09-22)
- 设置styledformatter missed(@ihoru)的escape_消息字段
1.1.2(2016-05-13)
- fixed setup.py requires选项(更改为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)
- 初始版本