最佳实践

在服务器 XXX.XXX.XXX.XXX 部署 wechat_sender 服务:

from wxpy import *
from wechat_sender import *

bot = Bot('bot.pkl', console_qr=True)
bot.enable_puid()
master = ensure_one(bot.friends().search(puid='xxxx'))
log_group = ensure_one(bot.groups().search(puid='xxxxxx'))
other = ensure_one(bot.friends().search('xxxxxx'))
token = 'xxxxxxxxxxxxxxxxxxxxx'
listen(bot, [master, other, log_group], token=token, port=9090, status_report=True, status_receiver=log_group)

在其他地方进行消息发送:

from wechat_sender import Sender
host = 'XXX.XXX.XXX.XXX'
token = 'xxxxxxxxxxxxxxxxxxxxx'
sender = Sender(token=token, receiver='xxx', host=host, port='9090')

在其他应用中加入 wechat_sender logging handler:

# 假如这是你另一台服务器上的脚本
# spider.py

import logging
from wechat_sender import LoggingSenderHandler

logger = logging.getLogger(__name__)

# spider code here
def test_spider():
    ...
    logger.exception("EXCEPTION: XXX")

def init_logger():
    token = 'xxxxxxxxxxxxxxxxxxxxx'
    sender_logger = LoggingSenderHandler('spider', token=token, port=9090, host='XXX.XXX.XXX.XXX', receiver='xxx', level=logging.EXCEPTION)
    logger.addHandler(sender_logger)

if __name__ == '__main__':
    init_logger()
    test_spider()

只需要在原有 logger 中加入 wechat_sender 的 log handler 即可实现把日志发送到微信