物联网平台支持设备将本地日志上报到云端,在控制台进行查询和故障分析。

说明
  • 使用了以下Link SDK的设备端支持本地日志上报,您也可以自行开发带有本地日志上报功能的SDK。
  • 您在设备详情页,开启设备本地日志上报开关后,设备才能将本地日志上报到云端。

设备本地日志的具体查询方法,请参见设备本地日志

设备获取日志配置

数据上行。

  • 请求Topic:/sys/${productKey}/${deviceName}/thing/config/log/get
  • 响应Topic:/sys/${productKey}/${deviceName}/thing/config/log/get_reply

Alink请求数据格式:

{
    "id" : 123,
    "version":"1.0",
    "params" : {
        "configScope":"device",  
        "getType":"content"
     },
    "method":"thing.config.log.get"
}
表 1. 请求参数说明
参数 类型 说明
id String 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
version String 协议版本号,目前协议版本号唯一取值为1.0
configScope String 配置范围,目前日志只有设备维度配置,默认为device
getType String 获取内容类型,默认为content。因日志配置内容较少,默认直接返回内容。
method String 请求方法,取值thing.property.desired.get

Alink响应数据格式:

{
    "id":"123",
    "version":"1.0",
    "code":200,
    "data" :{ 
        "getType":"content",
        "content":{
            "mode":0 
        }
    }
}
表 2. 响应参数说明
参数 类型 说明
id String 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
version String 协议版本号,目前协议版本号唯一取值为1.0
code Integer 结果码。返回200表示成功,返回其他状态码,表示失败。

结果码67176718请参见下表错误信息。其他结果码请参见设备端通用code

data Object 云端返回的结果数据。
getType String 获取内容类型,默认为content。因日志配置内容较少,默认直接返回内容。
content String 配置文本内容。
mode Integer 设备日志上报模式,0表示设备SDK不上报日志, 1表示设备SDK上报日志。
表 3. 错误信息
错误码 原因 排查方法
6717 请求参数中getType取值非法,设备日志只支持content 物联网平台控制台对应实例的监控运维 > 日志服务 > 设备本地日志,或在设备本地日志中,查看上报数据中的getType取值。
6718 请求参数中configScope取值非法,设备日志只支持device 物联网平台控制台对应实例的监控运维 > 日志服务 > 设备本地日志,或在设备本地日志中,查看上报数据中的configScope取值。

设备接收订阅云端推送日志配置

数据下行。

Topic:/sys/${productKey}/${deviceName}/thing/config/log/push

Alink配置推送数据格式:

{
    "id":"123",
    "version":"1.0",
    "params" :{ 
        "getType":"content",
        "content":{
            "mode":0
        }
    }
}
表 4. 参数说明
参数 类型 说明
id String 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
version String 协议版本号,目前协议版本号唯一取值为1.0
getType String 获取内容类型,默认为content。因日志配置内容较少,默认直接返回内容。
content String 配置文本内容。
mode Integer 设备日志上报模式,0表示设备SDK不上报日志,1表示设备SDK上报日志。

设备上报日志内容

数据上行。

  • 请求Topic:/sys/${productKey}/${deviceName}/thing/log/post
  • 响应Topic:/sys/${productKey}/${deviceName}/thing/log/post_reply

Alink请求数据格式:

{
    "id" : 123,
    "version":"1.0",
    "params" :[{
          "utcTime":  "2020-03-06T15:15:27.464+0800",  
          "logLevel": "ERROR",          
          "module": "ModuleA",         
          "code" :"4103",                       
          "traceContext": "123456",    
          "logContent" : "some log content" 
         }], 
    "method" : "thing.log.post"
}
表 5. 请求参数说明
参数 类型 说明
id String 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
version String 协议版本号,目前协议版本号唯一取值为1.0
params List 请求业务参数。数组元素最多40个。
utcTime String 日志的采集时间,为设备本地UTC时间,包含时区信息,以毫秒计,格式为“yyyy-MM-dd'T'HH:mm:ss.SSSZ”。 可上报其它字符串格式,但不利于问题排查,不推荐使用。
logLevel String 日志级别。可以使用默认日志级别,也可以自定义日志级别。默认日志级别从高到低为:
  • FATAL
  • ERROR
  • WARN
  • INFO
  • DEBUG
module String 模块名称:
  • 当设备端使用Android SDK时,模块名称为ALK-LK。
  • 当设备端使用C SDK时,需自定义模块名称。
  • 当设备端使用自行开发的SDK时,需自定义模块名称。
code String 结果状态码:
  • 当设备端使用Android SDK时,请参见Android SDK错误码
  • 当设备端使用C SDK时,请参见C SDK状态码
  • 当设备端使用自行开发的SDK时,可以自定义结果状态码,也可以为空。
traceContext String 可选参数,上下文跟踪内容,设备端使用Alink协议消息的id,App端使用TraceId(追踪ID)。
logContent String 日志内容详情。
method String 请求方法,取值thing.log.post

Alink响应数据格式:

{
    "id" : 123,
    "code":200,
    "data" : {}
}
表 6. 响应参数说明
参数 类型 说明
id String 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
code String 结果码。返回200表示成功,返回其他状态码,表示失败,具体请参见设备端通用code
data Object 云端返回的结果数据。设备上报日志内容时,返回的结果数据为空。