美文网首页自动化
试试把报警日志发到微信上

试试把报警日志发到微信上

作者: 51reboot | 来源:发表于2017-08-18 12:19 被阅读413次

前言

笔者所在公司项目的报警信息会通过钉钉发送到群组或个人,这样如果服务出现了问题我们都会第一时间收到提醒并进行处理。

某日从钉钉收到报警信息的我突发奇想,如果自己的项目也能在出现问题的第一时间通过社交工具通知我岂不美 ( sang ) 滋 ( xin )滋( bing ) ( kuang )。

通过微信公众平台进行报警很容易,申请公众平台后写个报警后台或者使用企业微信进行接口信息发送。但不管是公众平台还是企业微信对于普通用户的入口太深,而且个人申请还需要提交资料等等一系列事情,显然不是我想要的结果。

之前 web 版微信的协议已经有大神解析过并封装了工具,之后又有优秀的作者不断完善封装了更好用的微信个人号接口。

利用微信个人号接口只要是个微信号就能担当发送日志警报的重任,不仅可以发送到个人同时还能发送到群组。

但是所有微信机器人都是自己主动运行,注册会话,没有办法接收外部程序的日志或报警,因此我就依托 wxpy 写了 wechat_sender。

wechat_sender

wechat_sender 是基于 wxpy (https://github.com/youfou/wxpy)和 tornado 实现的一个可以将你的网站、爬虫、脚本等其他应用中各种消息 (日志、报警、运行结果等) 发送到微信的工具。

使用 wechat_sender 很简单,只需要有个人微信号,然后用个人微信号启动 wechat_sender 服务。

pip install wechat_sender

1、登录微信并启动 wechat_sender 服务.

from wxpy import *   
   from wechat_sender import *
   bot = Bot() # 这里会扫码登录,如果在服务器中请使用 console_qr 参数
   listen(bot)   
   # 之后 wechat_sender 将持续运行等待接收外部消息

2、在另一个脚本中向微信发送消息.

from wechat_sender import Sender
   Sender().send('Hello From Wechat Sender')   
   # Hello From Wechat Sender 这条消息将通过 1 中登录微信的文件助手发送给你

当然,wechat_sender 支持 添加 logging handler 的方式直接继承进已有的项目中,例如我的个人的网站、爬虫脚本等,不必修改以前的代码,只需要在 logger 中增加一个 wechat_sender 的 loghandler 就可以把相关日志直接发送到微信中。

举个栗子:

# spider.py
# 假如在一个爬虫脚本,我们想让此脚本的警告信息直接发到微信
# 记得要先用 listen 运行 wechat_sender  服务

import logging
from wechat_sender import LoggingSenderHandler
logger = logging.getLogger(__name__)

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

def init_logger():
    sender_logger = LoggingSenderHandler('spider', level=logging.EXCEPTION)
    logger.addHandler(sender_logger)

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

最后类似效果是这样滴:


日志警报

当然,wechat_sender 不仅可以用来发送日志和警报,你也可以把他当做日程、会议提醒的利器。

wechat_sender 提供了周期消息和延时消息的功能:

# coding: utf-8
import datetime
from wechat_sender import Sender

sender = Sender()
time = datetime.datetime.now()+datetime.timedelta(hours=1)
sender.delay_send(content="测试内容", time=time, title="测试标题", remind=datetime.timedelta(minutes=59))

如果返回正常,1 分钟后你将收到这条消息时间是 1 小时后的消息提醒:

#标题:测试标题
#时间:2017-06-07 12:56:16
#内容:延迟消息测试

相关文章

  • 试试把报警日志发到微信上

    前言 笔者所在公司项目的报警信息会通过钉钉发送到群组或个人,这样如果服务出现了问题我们都会第一时间收到提醒并进行处...

  • 试试把报警日志发到微信上

    前言 笔者所在公司项目的报警信息会通过钉钉发送到群组或个人,这样如果服务出现了问题我们都会第一时间收到提醒并进行处...

  • 微信计划

    微信计划》 我想试试 把微信卸载了 然后 等待找我的人 来报警。 2017

  • 小哥哥我想.. 把报警信息发到微信

    前言 笔者所在公司项目的报警信息会通过钉钉发送到群组或个人,这样如果服务出现了问题我们都会第一时间收到提醒并进行处...

  • 分享四个Shell脚本实例

    多台服务器日志查询 服务器跳转脚本 日志自动清理脚本(日志需有滚动切割) ERROR日志巡逻(企业微信机器人报警)

  • 为什么转发到微信上会被屏蔽?

    不过是两句诗而已, 本来想省事,本来不过是转发微信上自己的朋友圈,居然被屏蔽了,不知道为什么?难道是两家网站有矛盾?

  • 2018-10-22

    2018-10-22 第一次写日记不知道怎么写起…… 今晚我加班,我把作业发到孩子奶奶微信上,让孩子自己看着完成。...

  • 能玩,挺好的!

    微信上,朋友们热闹地打招呼为音乐会忙碌着。安排什么时间排练, 什么时间王老师来指导,排练的录音发到微信上让大家反复...

  • 牙结石—老掉牙的罪魁祸首

    前段时间,有一位牙医把自然脱落的牙齿拍成微距照片,发到微信上,引起了很多人的围观!镜头下牙结石可以看得清清楚楚,甚...

  • 你们的鼓励就是我写下去的动力

    我最近养成了一个习惯,就是每天写日记,我本来打算写一两篇日记就不写了,可是当我把写好的日记发到微信上时,得到...

网友评论

本文标题:试试把报警日志发到微信上

本文链接:https://www.haomeiwen.com/subject/dotarxtx.html