python之企业微信log日志收集及报警

往往在很多时候代码跑着跑着就出现BUG了,那么我们怎样能及时发现BUG及修复BUG呢?

log日志是发现BUG的及检查BUG的重要文件,今天给大家介绍一下如何利用企业微信实时的进行错误log日志的收集:

第一步 注册企业微信

用企业微信接受通知,当然就需要成为企业微信的一员啦,创建自己的企业,企业微信注册地址
注册好以后让我们进入企业微信

第二步 注册应用,获得corpid corpsecret

如下图,注册完微信以后会得到一个企业ID
Alt
选择应用与小程序新建一个应用,进入应用详情可获取scret
Alt
准备工作差不多了,下面进行业务逻辑代码编写

第三步 调用企业微信API进行log收集

企业微信API链接
调用API之前需要获取一个token

def get_token(self):
        """
        根据API获取token
        corpid: 获取到的企业ID
        corpsecret:应用的secret
        """
        url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
        values = {
            'corpid': self.corpid,
            'corpsecret': self.corpsecret,
        }
        req = requests.post(url, params=values)
        data = json.loads(req.text)
        return data["access_token"]

得到token后进行企业微信消息发送啦

def send_msg(self, msg):
        """
        调用企业微信发送信息API, 参考链接 https://work.weixin.qq.com/api/doc#10167
        参考链接上有详细的参数说明
        touser: 默认为@all
        agentid: 创建应用时的 agentid
        msg: 程序报错时需要报警提示,在爬虫程序中传递过来
        需要在所创建的应用中设置可见范围,可自己创建群组
        在程序中调用方式 WechatNotice().send_msg(msg)
        """
        url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.get_token()
        data = {
            "touser": "@all",
            "msgtype": "text",
            "agentid": 1000002,
            "text": {
                "content": msg
            },
            "safe": 0
        }
        try:
            res = requests.post(url, json.dumps(data))
            result = json.loads(res.content.decode())
            if result["errmsg"] != "ok":
                self.log_manage()
                logging.error(result)
        except Exception as e:
            self.log_manage()
            logging.error(e)

详细说明一下,这边我有自己封装好一个log_manage(),可在企业微信的同时,本地也进行一份log日志存储,在你的业务处理中调用send_msg(msg)即可进行代码错误信息通知,msg为 error

 def log_manage(self):
        """
        log日志管理
        log_path 需要自己新建一个logs文件夹
        """
        rq = time.strftime('%Y%m%d', time.localtime(time.time()))
        log_path = os.path.dirname(os.getcwd() + '/logs/')
        logging.basicConfig(level=logging.DEBUG,  # 控制台打印的日志级别
                            filename=log_path + rq + '.log',
                            filemode='a',  # 模式,有w和a,w就是写模式,每次都会重新写日志,覆盖之前的日志
                            # a是追加模式,默认如果不写的话,就是追加模式
                            format=
                            '%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'
                            # 日志格式
                            )
总结

很多需求经过仔细的思考还是可以解决的,不要因为一点点小需求跟产品经理相爱相杀哟。以上的整合代码可上博主github 利用企业微信进行错误报警

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要连接企业微信,可以使用企业微信提供的API接口。首先,需要在企业微信后台进行配置,开启API接口权限,并获取到相应的应用ID和应用Secret。 接下来,可以使用Python编写代码,通过企业微信的API接口实现消息发送、成员管理等功能。 以下是一个简单的Python代码示例,用于向企业微信发送文本消息: ``` import requests import json APP_ID = 'your_app_id' APP_SECRET = 'your_app_secret' # 获取 access_token def get_access_token(): url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken' params = { 'corpid': APP_ID, 'corpsecret': APP_SECRET } response = requests.get(url, params=params) access_token = json.loads(response.text)['access_token'] return access_token # 发送文本消息 def send_text_message(to_user, content): url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + get_access_token() data = { 'touser': to_user, 'msgtype': 'text', 'agentid': 1000002, # 企业微信应用ID 'text': { 'content': content } } response = requests.post(url, data=json.dumps(data)) return response.text # 测试发送消息 to_user = 'userid1|userid2' # 发送给多个用户,用竖线分隔 content = '测试消息' response = send_text_message(to_user, content) print(response) ``` 以上代码中,先定义了一个获取access_token的函数和一个发送文本消息的函数。在使用发送文本消息的函数时,需要指定接收消息的用户ID(可以是多个,用竖线分隔)和消息内容。 注意,这里的APP_ID和APP_SECRET需要替换成自己的企业微信应用ID和应用Secret。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值