往往在很多时候代码跑着跑着就出现BUG了,那么我们怎样能及时发现BUG及修复BUG呢?
log日志是发现BUG的及检查BUG的重要文件,今天给大家介绍一下如何利用企业微信实时的进行错误log日志的收集:
第一步 注册企业微信
用企业微信接受通知,当然就需要成为企业微信的一员啦,创建自己的企业,企业微信注册地址 注册好以后让我们进入企业微信
第二步 注册应用,获得corpid corpsecret
如下图,注册完微信以后会得到一个企业ID
选择应用与小程序新建一个应用,进入应用详情可获取scret
准备工作差不多了,下面进行业务逻辑代码编写
第三步 调用企业微信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'
# 日志格式
)
总结