太阳集团5493conlogo

  • 微博
  • 微信
  • QQ好友
  • QQ空间
  • 百度
详细内容

业务数据怎么查,我用云开发高级日志服务-杭州微信小程序公众号直播商城开发

小程序·云开发作为小程序原生的后台开发能力,一直致力于可以更高效地帮助开发者构建性能更好的小程序。而云函数作为云开发的一项基础能力,承载着小程序所有的后台运算逻辑,它就像小程序的大脑一样,每天繁忙地工作着。

而对于开发者而言,如何尽快地定位和排查云函数使用过程中的问题,也成为保障小程序质量的必备功能。而有一部分开发者并不担心这个问题,因为他们选择了一种能力,只要通过简单的开启就可以高效且准确地定位到云函数中的问题。

这就是云开发提供的高级日志服务。那什么是高级日志服务,它又能做什么呢?接下来就让我们一探究竟。

什么是高级日志服务

很多开发者可能都会遇到这样一些问题:

线上的小程序运行地好好的突然出问题了,怎么知道是哪里有异常呢?

根据线上表现大概猜到是哪个功能模块出现了异常,但是不知道上下文调用信息,要如何准确定位问题?

如果你恰巧使用的是云开发,那不必担心,因为云函数原生就带有日志服务。但是基于之前提供的旧的日志服务,开发者可能还是会遇到一些问题:

我不知道具体的请求 ID 是什么,但是隐约记得一些关键字,这要怎么查询日志信息啊?我想自定义一些信息打印到日志中,该怎么办?

小程序·云开发的高级日志服务就是为解决以上所有开发者遇到的问题应运而生的产品能力。基于高级日志服务提供的日志采集和日志检索功能,开发者可以更加高效地发现和解决云函数运行过程中的问题。


高级日志服务能做什么

让我们通过前端开发小 H 的故事来看看,高级日志服务到底能够做什么。

1. 旧框架下的日志服务

之前小 H 经常会为了做小程序而陷入苦恼当中,比如他需要将用户触发订阅消息时的一些数据存储到数据库中,用于后续的消息下发,这就需要有一个完整的服务端才行。但是作为一个前端开发,小 H 对于后台服务的搭建和部署并不熟悉,因此常常陷入困境。
后来他发现了云开发这样一个神器,一键开通就可以具备后台服务开发的能力了。那么现在当他想要存储相关的数据就变得非常简单了。
首先,他定义一个云函数 subscribe,并在通过该云函数将用户订阅的消息信息存储到小程序·云开发的数据库中。
    exports.main = async (event, context) => {  const log = cloud.logger();  try {    const { OPENID } = cloud.getWXContext();
       // 在数据库中记录用户的订阅信息    const result = await db.collection('messages').add({      data: {        touser: OPENID, // 用户的openid        page: 'index', // 订阅消息的页面路径        templateId: event.templateId, // 订阅消息模板ID      },    });
       log.info({      action: 'addMessage',      touser: OPENID,      templateId: event.templateId,    });
       return result;  } catch (err) {    log.error({      type: err.name,      message: err.message,    });    return err;  }}
    然后在小程序端调起订阅消息界面的时候触发这个云函数并将对应的信息存储到数据库中。同时小 H 还可以通过云开发提供的原生的日志功能查看每次的调用是否成功,以及具体的调用信息。

    2.jpg

    但是原生的日志中能够写入的数据是非常有限的。而且检索日志的时候只能通过开始时间、结束时间、状态和 requestID 进行检索。可是基于业务需求小 H 需要在 subscribe 云函数调用的时候需要再打入一些自定义的信息,而且他希望可以对日志按照 log / info /warn / error 进行分级,这样在日志查询的时候也可以快速定位到自己想要关注的日志,这该怎么办呢?

    当然,小 H 并不只是一个人,正是看到很多开发者有类似的问题,今年我们推出了云开发高级日志的服务。接下来,让我们看看,小 H 是如何使用高级日志服务的。

    2. 高级日志服务

    首先,小 H 在定义 subscribe 函数的时候可以使用 wx-server-sdk(1.5.0 或以上版本)提供的方法打入一些自定义的日志内容。具体流程为:

    1. 通过logger() 方法取得log 对象
    2. 调用 log 对象上的 log / info / warn / error(对应不同 level 的日志等级)方法,传入一个对象作为参数
    3. 对象的每一个  对都会成为日志一条记录中的一个可检索的键值对,其中value 不论值是什么都会被转成字符串


    按照上述改造后, subscribe 变成了下面这样:
      exports.main = async (event, context) => {  const log = cloud.logger();  try {    const { OPENID } = cloud.getWXContext();
         // 在数据库中记录用户的订阅信息    const result = await db.collection('messages').add({      data: {        touser: OPENID, // 用户的openid        page: 'index', // 订阅消息的页面路径        templateId: event.templateId, // 订阅消息模板ID      },    });
         log.info({      action: 'addMessage',      touser: OPENID,      templateId: event.templateId,    });
         return result;  } catch (err) {    log.error({      type: err.name,      message: err.message,    });    return err;  }}

      此时,当这个 subscribe 被触发以后,我们就能在高级日志服务中看到这样一条日志记录:

        {  "level": "info",  "function": "", // 执行的云函数名  "requestId": "", // Request ID  "action": "addMessage",  "touser": "",  "templateId": "",  "src": "app" // logger 打的日志为 app,系统打的日志为 system}
        有了日志以后,日志检索也会变得非常的简单。

        高级日志不仅提供了全文检索能力,还提供了通过键值检索约束查询范围,让日志的检索变得更加的简单和快捷。

        比如,小 H 想知道 subscribe 函数的日志,就可以通过:

        • 全文检索:在搜索框中输入 subscribe

        • 键值检索:在搜索框中输入 function:subscribe

        比如,小 H 想知道 subscribe 函数且 OPENID 为 popo 的日志,就可以通过:

        • 在搜索框中输入 function:subscribe and touser:popo

        又如,小 H 想知道 level 为 error 且错误信息中含有单词 defined 或以 mem 打头的单词的日志,就可以通过:

        • 在搜索框中输入 function:subscribe and level:error and (message:defined or message:mem*)

        当然,高级日志服务还提供丰富的查询语法,大家可通过《小程序·云开发高级日志服务》了解详细内容。

        3.jpg

        除了新增的高级日志外,近期小程序·云开发还更新了——


        小程序·云开发能力更新

        除了新增的高级日志外,近期小程序·云开发还更新了:

        • 为帮助企业、政府、媒体及其他组织的小程序开发者在新冠肺炎疫情期间共度难关,小程序·云开发推出特殊类型代金券帮助大家以更低地资源成本完成小程序的功能迭代。

          详情可参考文档《小程序·云开发特殊代金券》

        • 数据库安全规则:提供精细化的控制集合中所有记录的读、写权限的能力,自动拒绝不符合安全规则的前端数据库请求,保障数据安全

        • 自定义告警:提供更加灵活的告警配置,可以使用告警指标、统计周期、比较条件、持续周期、告警频率等参数自由组合告警条件。如:统计周期 [5 分钟],当 云函数错误次数 [5 次] 且持续 [1] 个周期时告警,[每小时] 告警一次

        • 数据库事务:可以方便开发者更加灵活地使用数据库能力,满足跨多个记录或跨多集合的原子操作的使用诉求,极大地方便了小程序的功能开发


        你对小程序·云开发还有哪些疑问或建议,欢迎来到微信开放社区一起沟通交流(PC网页端可发帖)

        微信开放社区欢迎来到微信开放社区image.png小程序

        太阳集团2138手机版
        更多
        • 2022 Q4 用户最喜爱的朋友圈广告-

          2022 Q4 用户最喜爱的朋友圈广告-

          基于用户的互动行为及广告效果数据指标,我们找出了2022年第四季度用户最喜爱的朋友圈广告TOP 10(排名不分先后),期待更多好创意与你相见。TOP朋友圈广告用

        • 生活特辑 Vol.14 ᅵ

          生活特辑 Vol.14 ᅵ

          Good Life生活广告榜吃喝玩乐品生活,发现身边新乐趣。快来看看本季最受欢迎的身边广告。今天“吃”什么?吃喝福利,任你选新的一年不如用味觉拉开序幕不知道吃什

        • 速速集合,新年红包封面领取攻略来了-杭州

          速速集合,新年红包封面领取攻略来了-杭州

          新年怎样发红包姿势最帅?当然是用上最炫的红包封面!今年,红包封面又又又升级啦,全新动态红包封面上线,祝福更“动”人心。微信广告将携手众多品牌派发多款精美别致的红

        • 视频号互选好内容|11月-杭州网络公司为

          视频号互选好内容|11月-杭州网络公司为

          精选11月优秀视频号互选案例,为创作者指引好内容的风向,洞悉好商单的秘诀。理想汽车× 所长林超通俗科普,干货满满科技自主的路上,理想汽车的答案是什么。所长观察敏

        • 微信创作者营销价值与营销策略白皮书发布-

          微信创作者营销价值与营销策略白皮书发布-

          腾讯广告互选平台始于内容致远商业一图读懂微信创作者营销方法论微信创作者四大特点长久创作,深耕原创内容长久创作87.2%公众号运营超过2年垂类丰富体育 媒体 财经

        • 精华笔记|2022 腾讯广告创作者营销峰

          精华笔记|2022 腾讯广告创作者营销峰

          12月22日,腾讯广告以直播形式举办首届创作者营销峰会(以下简称“峰会”)。无论对广告主 / 代理商,还是创作者 / MCN机构,今年的峰会可谓是“一场及时雨”

        • 烟花贺岁:朋友圈点赞互动广告上线-杭州微

          烟花贺岁:朋友圈点赞互动广告上线-杭州微

          新年有新喜,微信广告全新推出朋友圈点赞互动广告,让品牌和用户一起放烟花,迎新年。品牌领赞,首枚烟花惊喜绽放;用户跟赞,个性化品牌烟花跃然出框;双向互动中激发更强

        • 即刻预约|2022 腾讯广告创作者营销峰

          即刻预约|2022 腾讯广告创作者营销峰

          连接放大价值腾讯广告创作者营销峰会2022/12/22邀请函尊敬的嘉宾:在内容创作者的黄金时代,无数品牌借力优质内容开辟出了商业增长新路径。作为微信商业内容官方

        • 搞笑与搞钱,这些创作者都很认真-杭州网络

          搞笑与搞钱,这些创作者都很认真-杭州网络

          在微信视频号上有着许多视频创作者,他们因为热爱,而创作出非常多有趣的视频。然而每一个视频背后,创作者都要付出无数的心血和努力。当粉丝达到一定数量,也具备相对成熟

        • 朋友圈橱窗广告上线-杭州APP开发为你呈

          朋友圈橱窗广告上线-杭州APP开发为你呈

          微信广告上线朋友圈橱窗广告,满足广告主更丰富的素材展示诉求。广告支持配置一个主素材和三个副素材,组合形式突破原生形态,更易吸引用户停留点击。朋友圈橱窗广告示意橱

        太阳集团5493con是一家专门致力于为企业提供全方位网站建设服务。年轻的我们带着梦想和对网络的热情走在互联网道路的前沿,一路走来,我们的努力和真诚得到了更多客户的认可。在未来的发在未来的发...

        浙公网安备:33010602011153

        seo seo