# feishu-logging-handler
通过webhook将自定义服务的消息推送至飞书
## 更新记录
- 1.0.7 增加了普通错误的简化输出,便于阅读。支持simple_log_levelno和simple_format
- 1.0.6 修复了bug、stack_info并且可以换行输出
- 1.0.5 增加stack_info的支持
- 1.0.5 增加了error不是str的支持(特别是try except的时候)
特点:
- 异步有可能会遇到loop已释放的问题,调整为同步。启用多线程,所以性能ok
- 增加缓存支持,重复消息设置一个时间周期,不会重复发送
- 支持 filter_key 来过滤部分error的key
# 安装
pip install feishu-logging-handler -i https://pypi.org/simple
# 配置
- 创建一个飞书群组
- 点击群设置,添加一个机器人,并生成Webhook地址
- 可以设置关键词过滤
# 使用方式
初始化:
```
from feishu_logging.handler import FeiShuWebhookHandler
log_feishu = logging.getLogger("feishu")
http_handler = FeiShuWebhookHandler("https://open.feishu.cn/open-apis/bot/v2/hook/xxx","key_word",cache_time=10,filter_key=["funcName","msg","levelname","args","pathname","lineno","threadName","stack_info"]) # cache_time = 0为不启用cache,cache_time单位为秒
http_handler.setLevel(logging.DEBUG)
log_feishu.addHandler(http_handler)
```
```
注意是否会初始化多次 addHandler 如果多次会请求多次
if not log_feishu.handlers:
http_handler = FeiShuWebhookHandler("https://open.feishu.cn/open-apis/bot/v2/hook/xxx","key_word",cache_time=10,filter_key=["funcName","msg","levelname","args","pathname","lineno","threadName","stack_info"]) # cache_time = 0为不启用cache
http_handler.setLevel(logging.DEBUG)
log_feishu.addHandler(http_handler)
```
写日志:
```
log_feishu = logging.getLogger("feishu")
log_feishu.error("错误测试")
```
填入Webhook地址和关键词(或项目名称)即可
Raw data
{
"_id": null,
"home_page": "https://github.com/smockgithub/feishu-logging-handler",
"name": "feishu-logging-handler",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3",
"maintainer_email": null,
"keywords": null,
"author": "smock",
"author_email": "smockg@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/4b/a8/bb1efa1c1da859a397433d2c39f38b91f4f1f2bcb905a9677b4023a6fab4/feishu_logging_handler-1.0.8.tar.gz",
"platform": null,
"description": "# feishu-logging-handler\r\n\u901a\u8fc7webhook\u5c06\u81ea\u5b9a\u4e49\u670d\u52a1\u7684\u6d88\u606f\u63a8\u9001\u81f3\u98de\u4e66\r\n\r\n## \u66f4\u65b0\u8bb0\u5f55\r\n- 1.0.7 \u589e\u52a0\u4e86\u666e\u901a\u9519\u8bef\u7684\u7b80\u5316\u8f93\u51fa\uff0c\u4fbf\u4e8e\u9605\u8bfb\u3002\u652f\u6301simple_log_levelno\u548csimple_format\r\n- 1.0.6 \u4fee\u590d\u4e86bug\u3001stack_info\u5e76\u4e14\u53ef\u4ee5\u6362\u884c\u8f93\u51fa\r\n- 1.0.5 \u589e\u52a0stack_info\u7684\u652f\u6301\r\n- 1.0.5 \u589e\u52a0\u4e86error\u4e0d\u662fstr\u7684\u652f\u6301(\u7279\u522b\u662ftry except\u7684\u65f6\u5019)\r\n\r\n\r\n\u7279\u70b9\uff1a\r\n- \u5f02\u6b65\u6709\u53ef\u80fd\u4f1a\u9047\u5230loop\u5df2\u91ca\u653e\u7684\u95ee\u9898\uff0c\u8c03\u6574\u4e3a\u540c\u6b65\u3002\u542f\u7528\u591a\u7ebf\u7a0b\uff0c\u6240\u4ee5\u6027\u80fdok\r\n- \u589e\u52a0\u7f13\u5b58\u652f\u6301\uff0c\u91cd\u590d\u6d88\u606f\u8bbe\u7f6e\u4e00\u4e2a\u65f6\u95f4\u5468\u671f\uff0c\u4e0d\u4f1a\u91cd\u590d\u53d1\u9001\r\n- \u652f\u6301 filter_key \u6765\u8fc7\u6ee4\u90e8\u5206error\u7684key\r\n\r\n# \u5b89\u88c5\r\npip install feishu-logging-handler -i https://pypi.org/simple\r\n\r\n# \u914d\u7f6e\r\n- \u521b\u5efa\u4e00\u4e2a\u98de\u4e66\u7fa4\u7ec4\r\n- \u70b9\u51fb\u7fa4\u8bbe\u7f6e\uff0c\u6dfb\u52a0\u4e00\u4e2a\u673a\u5668\u4eba\uff0c\u5e76\u751f\u6210Webhook\u5730\u5740\r\n- \u53ef\u4ee5\u8bbe\u7f6e\u5173\u952e\u8bcd\u8fc7\u6ee4\r\n\r\n\r\n# \u4f7f\u7528\u65b9\u5f0f\r\n\u521d\u59cb\u5316\uff1a\r\n```\r\nfrom feishu_logging.handler import FeiShuWebhookHandler\r\nlog_feishu = logging.getLogger(\"feishu\")\r\nhttp_handler = FeiShuWebhookHandler(\"https://open.feishu.cn/open-apis/bot/v2/hook/xxx\",\"key_word\",cache_time=10,filter_key=[\"funcName\",\"msg\",\"levelname\",\"args\",\"pathname\",\"lineno\",\"threadName\",\"stack_info\"]) # cache_time = 0\u4e3a\u4e0d\u542f\u7528cache,cache_time\u5355\u4f4d\u4e3a\u79d2\r\nhttp_handler.setLevel(logging.DEBUG)\r\nlog_feishu.addHandler(http_handler)\r\n```\r\n\r\n```\r\n\u6ce8\u610f\u662f\u5426\u4f1a\u521d\u59cb\u5316\u591a\u6b21 addHandler \u5982\u679c\u591a\u6b21\u4f1a\u8bf7\u6c42\u591a\u6b21\r\nif not log_feishu.handlers:\r\n http_handler = FeiShuWebhookHandler(\"https://open.feishu.cn/open-apis/bot/v2/hook/xxx\",\"key_word\",cache_time=10,filter_key=[\"funcName\",\"msg\",\"levelname\",\"args\",\"pathname\",\"lineno\",\"threadName\",\"stack_info\"]) # cache_time = 0\u4e3a\u4e0d\u542f\u7528cache\r\n http_handler.setLevel(logging.DEBUG)\r\n log_feishu.addHandler(http_handler)\r\n```\r\n\r\n\u5199\u65e5\u5fd7:\r\n```\r\nlog_feishu = logging.getLogger(\"feishu\")\r\nlog_feishu.error(\"\u9519\u8bef\u6d4b\u8bd5\")\r\n```\r\n\r\n\u586b\u5165Webhook\u5730\u5740\u548c\u5173\u952e\u8bcd\uff08\u6216\u9879\u76ee\u540d\u79f0\uff09\u5373\u53ef\r\n",
"bugtrack_url": null,
"license": null,
"summary": "logging\u7684\u98de\u4e66handler",
"version": "1.0.8",
"project_urls": {
"Homepage": "https://github.com/smockgithub/feishu-logging-handler"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "58464269f679d5e36d6183da1808af86b4e6ade263a241ecbaeec34c6b731eb2",
"md5": "931e30ff9ba77bfd8927ed8cd543e89d",
"sha256": "99f62a3646451e4850fdabaaf7fabe6b9b3305dd8108cc0c8afe4334f9c08ef4"
},
"downloads": -1,
"filename": "feishu_logging_handler-1.0.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "931e30ff9ba77bfd8927ed8cd543e89d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3",
"size": 12089,
"upload_time": "2024-12-03T14:58:03",
"upload_time_iso_8601": "2024-12-03T14:58:03.848387Z",
"url": "https://files.pythonhosted.org/packages/58/46/4269f679d5e36d6183da1808af86b4e6ade263a241ecbaeec34c6b731eb2/feishu_logging_handler-1.0.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4ba8bb1efa1c1da859a397433d2c39f38b91f4f1f2bcb905a9677b4023a6fab4",
"md5": "6dbd34b4be80f25ef51566e3ad7f3719",
"sha256": "5fac5121113bda3d7954230cf34e0172b4ad0f13e945a03b1c4624b593a2f032"
},
"downloads": -1,
"filename": "feishu_logging_handler-1.0.8.tar.gz",
"has_sig": false,
"md5_digest": "6dbd34b4be80f25ef51566e3ad7f3719",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3",
"size": 9777,
"upload_time": "2024-12-03T14:58:05",
"upload_time_iso_8601": "2024-12-03T14:58:05.107137Z",
"url": "https://files.pythonhosted.org/packages/4b/a8/bb1efa1c1da859a397433d2c39f38b91f4f1f2bcb905a9677b4023a6fab4/feishu_logging_handler-1.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-03 14:58:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "smockgithub",
"github_project": "feishu-logging-handler",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "feishu-logging-handler"
}