Python進階_wxpy學習:用微信監控你的程式
阿新 • • 發佈:2019-02-19
目錄:
前言
學習完了python的基本概念和相應操作後,就要進入實戰階段了,首先選的和微信埠自動互動的wxpy。
本文操靠wxpy的官方文件:官方文件
機器人物件可以參考前文:機器人物件
聊天物件可以參考前文:聊天物件
訊息處理可以參考前文:訊息處理
用微信監控你的程式
通過利用微信強大的通知能力,我們可以把程式中的警告/日誌發到自己的微信上。
wxpy 提供以下兩種方式來實現這個需求。
獲得專用 Logger
wxpy.get_wechat_logger(receiver=None, name=None, level=30)[原始碼]
獲得一個可向指定微信聊天物件傳送日誌的 Logger
引數:
•receiver – ◦當為 None, True 或字串時,將以該值作為 cache_path 引數啟動一個新的機器人,併發送到該機器人的”檔案傳輸助手”
◦當為 機器人 時,將傳送到該機器人的”檔案傳輸助手”
◦當為 聊天物件 時,將傳送到該聊天物件
•name – Logger 名稱
•level – Logger 等級,預設為 logging.WARNING
返回:
Logger
from wxpy import get_wechat_logger
# 獲得一個專用 Logger
# 當不設定 `receiver` 時,會將日誌傳送到隨後掃碼登陸的微信的"檔案傳輸助手"
logger = get_wechat_logger()
# 傳送警告
logger.warning('這是一條 WARNING 等級的日誌,你收到了嗎?')
# 接收捕獲的異常
try:
1 / 0
except:
logger.exception('現在你又收到了什麼?')
加入到現有的 Logger
class wxpy.WeChatLoggingHandler(receiver=None)[原始碼]
可向指定微信聊天物件傳送日誌的 Logging Handler
引數:
receiver – •當為 None, True 或字串時,將以該值作為 cache_path 引數啟動一個新的機器人,併發送到該機器人的”檔案傳輸助手”
•當為 機器人 時,將傳送到該機器人的”檔案傳輸助手”
•當為 聊天物件 時,將傳送到該聊天物件
import logging
from wxpy import WeChatLoggingHandler
# 這是你現有的 Logger
logger = logging.getLogger(__name__)
# 初始化一個微信 Handler
wechat_handler = WeChatLoggingHandler()
# 加到入現有的 Logger
logger.addHandler(wechat_handler)
logger.warning('你有一條新的告警,請查收。')
指定接收者
當然,我們也可以使用其他聊天物件來接收日誌。
比如,先在微信中建立一個群聊,並在裡面加入需要關注這些日誌的人員。然後把這個群作為接收者。
from wxpy import *
# 初始化機器人
bot = Bot()
# 找到需要接收日誌的群 -- `ensure_one()` 用於確保找到的結果是唯一的,避免發錯地方
group_receiver = ensure_one(bot.groups().search('XX業務-告警通知'))
# 指定這個群為接收者
logger = get_wechat_logger(group_receiver)
logger.error('打擾大家了,但這是一條重要的錯誤日誌...')