设备日志上报

最近更新时间:2023-10-19 11:03:32

我的收藏

功能概述

设备日志主要用于平台远程查看设备运行日志,平台可通过下发消息,通知设备进行日志上报,日志级别包括错误、警告、信息和调试。实现此功能需利用如下两个 Topic:
数据上行 Topic(用于发布):$log/operation/${productid}/${devicename}
数据下行 Topic(用于订阅):$log/operation/result/${productid}/${devicename}

查询日志级别

1. 设备端通过 MQTT 协议发布一条消息到$log/operation/${productid}/${devicename},进行查询是否需上传日志,及上传日志级别,消息为 json 格式,内容如下:
{
"type": "get_log_level",
"clientToken": "PPXLSKBUPZ-**"
}
2. 设备主动查询是否需上报日志,或平台远程通知设备开启日志上报,后台通过$log/operation/result/${productid}/${devicename}向设备发送是否开启日志上报,及上报的日志级别,消息为 json 格式,内容如下:
{
"type": "get_log_level",
"clientToken": "PPXLSKBUPZ-**",
"log_level": 4,
"result": 0,
"timestamp": 1619599073
}
//log_level:0-不上报日志 1-上报错误日志 2-上报警告日志 3-上报信息日志 4-上报调试日志

日志上传

参数说明

设备日志上传时需携带 ProductId 和 DeviceName 向平台发起http/https请求,请求接口及参数如下:
请求的 URL 为: http://ap-guangzhou.gateway.tencentdevices.com/device/reportloghttps://ap-guangzhou.gateway.tencentdevices.com/device/reportlog
请求方式:Post

请求参数

参数名称
是否必选
类型
描述
ProductId
String
产品 Id。
DeviceName
String
设备名称。
Message
Array
上报的日志内容。 字符串数组,每条日志内容前面需要加上日志等级,目前支持 DBG、INF、ERR、WRN。
说明:
接口只支持 application/json 格式。

签名生成

对请求报文进行签名有两种方式,密钥认证使用 HMAC-sha256 算法,证书认证使用 RSA_SHA256 算法,详情请参见 签名方法

平台返回参数

参数名称
类型
描述
RequestId
String
请求 Id。

示例代码

请求包

POST https://ap-guangzhou.gateway.tencentdevices.com/device/reportlog
Content-Type: application/json
Host: ap-guangzhou.gateway.tencentdevices.com
X-TC-Algorithm: HmacSha256
X-TC-Timestamp: 1551****65
X-TC-Nonce: 5456
X-TC-Signature: 2230eefd229f582d8b1b891af7107b91597240707d7****3738f756258d7652c
{"DeviceName":"AAAAAA","Message":["INFmqtt connect success."],"ProductId":"G8N9****HB"}

返回包

{
"Response":{
"RequestId":"f4da4f1f-d72e-40f1-****-349fc0072ba0"
}
}