首页 > 其他分享 >日志服务

日志服务

时间:2025-01-17 10:15:06浏览次数:1  
标签:检索 字符 服务 level value 开发者 日志

日志服务

开发者可通过微信云开发提供的日志服务实现日志采集和检索分析等功能,方便开发者通过日志快速的发现和定位问题。每条日志可最长存储30天,超过 30 天的日志将被自动清理。

运行环境

  • 下载并安装 1.02.1910242 或以上版本的开发者工具,下载地址
  • wx-server-sdk 需使用 1.5.0 或以上版本。

开启服务

开发者可前往微信开发者工具云控制台的云函数高级日志界面开启高级日志服务。

开启服务

  • 说明:日志服务将在基础套餐外进行额外收费,请查看 计费说明

关闭服务

开发者可前往 微信云开发者工具-云开发控制台-云函数-高级日志页面,点击「关闭日志」即可。 image

  • 说明:关闭日志后,将会删除原有的日志数据,并且再次开启后不可恢复。

日志采集

可使用 wx-server-sdk 提供的 logger 方法打日志:

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

注意:logger() 必须在 exports.main 中执行,否则不会生效。

示例:

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  const log = cloud.logger()
  log.info({
    name: 'xx',
    cost: 10,
    attributes: {
      width: 100,
      height: 200,
    },
    colors: ['red', 'blue'],
  })

  // 输出到日志记录中会有这么一条记录:
  // {
  //   "level": "info",
  //   "name": "xx",
  //   "cost": "10",
  //   "attributes": "{ width: 100, height: 200 }",
  //   "colors": "[ "red", "blue" ]"
  //   ..., // 其他系统字段
  // }

  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}

日志检索

开启日志服务后,开发者可在高级日志界面进行日志检索。

1. 检索方式

切换时间、排序方式及输入相应检索字段均可触发日志检索。由于每条日志最长保存 30 天,因此从当前日期算起,时间选择不得超过 30 天。

日志检索

为了方便开发者进行日志检索,系统还提供了以下便捷操作:

  • 在检索结果中,提取了 levelfunctionrequestId 做为关键字,通过点击相应字段可实现以该字段为检索条件进行检索。

快速查询

  • 记录了最近 3 条检索记录,供开发者快速回溯操作。

快速查询

  • levelfunctionsrcrequestId 作为快捷查询短语,通过点击相应字段可实现在检索输入框中的快速填充对应内容。

2. 查询方法

通过输入查询语句可以自定义检索条件,实现更加强大的检索需求。

在日志服务中,原始日志文本将根据分词符分成多个关键词且大小写敏感,默认分词符为 !@#%^&*()_="', <>/?|\;:\n\t\r[]{}

以某条日志内容为例:

10002345987;write;ERROR;code=400;topic does not exist;

上述日志内容中 ;= 两个默认分词符会将日志内容切分成 6 个单词 10002345987writeERRORcode400topic does not exist,开发者可以通过任意单词精准检索。

日志检索支持以下检索方式:

  • 全文检索:输入关键词精准检索日志。也支持模糊关键字匹配(?*)。如:warnwa?n
  • 键值检索:日志内容以 JSON 对象格式返回,开发者可以使用 key:value 的形式检索日志。其中 key 作为可以自定义输出的日志内容对象的属性字段,value 则为日志内容(也支持模糊关键字匹配)。如:level:warnfunction:echo

日志检索支持以下查询语法:

语法 语义
key:value 键值搜索格式,需要开启配置 键值索引,其中 value 支持?、*模糊搜索,若 key 或者 value 中包含空格、冒号等关键字符,需要用引号包括。例如 "error level":high
A and B “与”逻辑,返回 A 与 B 的交集结果,若多个关键词,使用空格分割则默认为 and
A or B “或”逻辑,返回 A 或 B 的并集结果
not B “非”逻辑,返回不包含 B 的结果
A not B “减”逻辑,返回符合 A 但不符合 B 的结果,即 A-B
( ) 合并两个或多个query为一个query,主要用于控制运算优先级
'a' 字符 a 将被视为普通字符,不会当作语法关键词处理
"A" A 中的所有关键词都将被视为普通字符,不会当作语法关键词处理
\ 转义字符,转义后的字符表示符号本身,例如转义引号",转义冒号:等
* 模糊查询关键字,匹配零个、单个或多个任意字符,不支持开头,例如:输入abc,会返回以abc开头的所有命中日志
? 模糊查询关键字,特定位置匹配单个字符。例如,输入ab?c,会返回以ab为开头,以c为结尾字符,且两者之间且有一个字符的所有命中日志

标签:检索,字符,服务,level,value,开发者,日志
From: https://www.cnblogs.com/AtlasLapetos/p/18647563

相关文章

  • 基于SSM实现的基于web的汽车售后服务管理系统的设计与实现+jsp源码+论文
    项目简介基于SSM实现的基于web的汽车售后服务管理系统的设计与实现+jsp源码+论文,主要功能如下:审核说明项目收集于互联网,经过我们仔细验证,可以正常运行;本项目属于学习项目,适合个人学习使用,不适合商用;精力有限,运行过程中若有小问题属正常现象,需要自行看源码进行简单的修......
  • 【微服务】使用 Apifox、Postman 测试 Dubbo 服务,Apache Dubbo OpenAPI 即将发布
    ApacheDubboOpenAPI简介1.1设计背景在微服务体系中,RPC服务的文档管理、测试、调用协作一直都是影响研发效能的关键一环,这些难题通常是由于RPC的特性所决定的:RPC服务的定义方式、RPC协议格式不一,缺少放之宇宙而皆准的统一规范。长期以来,ApacheDubbo的开发者们也面临同......
  • 计算机毕业设计Springboot某城市的地铁综合服务管理系统的设计与实现 基于Springboot
    计算机毕业设计Springboot某城市的地铁综合服务管理系统的设计与实现p40cv6o0(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着城市化的快速发展,地铁已成为城市公共交通的重要组成部分,其运营效率和服务质量直接影响着市民的出行......
  • 使用python+pytest+requests完成自动化接口测试(包括html报告的生成和日志记录以及层级
    一、API的选择我们进行接口测试需要API文档和系统,我们选择JSONPlaceholder免费API,因为它是一个非常适合进行接口测试、API测试和学习的工具。它免费、易于使用、无需认证,能够快速帮助开发者模拟常见的接口操作(增、删、改、查)。尤其对于我你们学习接口测试的初学开发者来说,它......
  • Creo许可证服务器设置指南
    在工程设计领域,Creo软件因其卓越的性能和广泛的适用性而受到用户的青睐。为了确保在多用户环境中高效、安全地使用Creo许可证,设置一个稳定的Creo许可证服务器是至关重要的。本文将为您提供一份详细的Creo许可证服务器设置指南,帮助您轻松完成设置,确保Creo软件的顺畅运行。一、了解......
  • wordpress 从服务器收到预料之外的响应。此文件可能已被成功上传。请检查媒体库或刷新
    两种报错方式:1.此响应不是合法的JSON响应。2.从服务器收到预料之外的响应。此文件可能已被成功上传。请检查媒体库或刷新本页。情况:媒体服务器上传小文件没问题,大一点的文件报这个错误。原因:这是因为nginx限制了请求体大小方案:需要在nginx的虚拟机配置文件中添加:client_max_b......
  • Chrony:让你的服务器时间精准到微秒级的神器!
    在现代计算机系统中,时间同步是至关重要的。无论是分布式系统、数据库集群,还是日志记录,时间不一致都可能导致严重的问题。而Chrony,作为一款高性能的时间同步工具,正在成为越来越多系统管理员的首选。它不仅比传统的ntpd更快、更精准,还能在网络不稳定的情况下保持出色的表现。今天......
  • 微服务中引入消息队列的利弊
    微服务中引入消息队列的利弊1、微服务架构中引入消息队列(MessageQueue)的主要优势:1.1解耦(Decoupling)服务之间不需要直接调用,通过消息队列实现松耦合生产者和消费者可以独立扩展和维护降低系统间的依赖性1.2异步处理(AsynchronousProcessing)非核心流程可以异......
  • Java程序运行时动态生成日志文件-loj4j
    1.创建Appender;2.logger实例和appender的绑定和解绑3.logger实例使用privatestaticfinalLoggerLOGGER=LogManager.getLogger(DeviceManagerCuppsIOHandler.class);创建<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-a......
  • 基于C语言实现UDP服务器
    UDP(UserDatagramProtocol,用户数据报协议)是一种无连接的传输层协议,适用于对实时性有较高要求的应用场景,如视频流传输、语音通信、在线游戏等。与TCP不同,UDP不保证数据的可靠性和顺序性,但其传输速度较快。本文将介绍如何使用C语言编写一个简单的UDP服务器程序,以及如何接收和处理......