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

说明
  • 使用了以下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",
    "sys":{
      "ack":0
    },
    "params" : {
        "configScope":"device",  
        "getType":"content"
     },
    "method":"thing.config.log.get"
}
表 1. 请求参数说明
参数类型说明
idString消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
versionString协议版本号,目前协议版本号唯一取值为1.0
sysObject扩展功能的参数,其下包含各功能字段。
说明 使用设备端SDK开发时,如果未设置扩展功能,则无此参数,相关功能保持默认配置。
ackIntegersys下的扩展功能字段,表示是否返回响应数据。
  • 1:云端返回响应数据。
  • 0:云端不返回响应数据。
重要 该功能配置说明,请参见物模型使用示例

如果未配置该功能,则无此参数,云端默认返回响应数据。

configScopeString配置范围,目前日志只有设备维度配置,默认为device
getTypeString获取内容类型,默认为content。因日志配置内容较少,默认直接返回内容。
methodString请求方法,取值thing.config.log.get

Alink响应数据格式:

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

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

dataObject云端返回的结果数据。
getTypeString获取内容类型,默认为content。因日志配置内容较少,默认直接返回内容。
contentString配置文本内容。
modeInteger设备日志上报模式,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. 参数说明
参数类型说明
idString消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
versionString协议版本号,目前协议版本号唯一取值为1.0
getTypeString获取内容类型,默认为content。因日志配置内容较少,默认直接返回内容。
contentString配置文本内容。
modeInteger设备日志上报模式,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",
    "sys":{
      "ack":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. 请求参数说明
参数类型说明
idString消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
versionString协议版本号,目前协议版本号唯一取值为1.0
sysObject扩展功能的参数,其下包含各功能字段。
说明 使用设备端SDK开发时,如果未设置扩展功能,则无此参数,相关功能保持默认配置。
ackIntegersys下的扩展功能字段,表示是否返回响应数据。
  • 1:云端返回响应数据。
  • 0:云端不返回响应数据。
重要 该功能配置说明,请参见物模型使用示例

如果未配置该功能,则无此参数,云端默认返回响应数据。

paramsList请求业务参数。数组元素最多40个。
utcTimeString日志的采集时间,为设备本地UTC时间,包含时区信息,以毫秒计,格式为“yyyy-MM-dd'T'HH:mm:ss.SSSZ”。 可上报其它字符串格式,但不利于问题排查,不推荐使用。
logLevelString日志级别。可以使用默认日志级别,也可以自定义日志级别。默认日志级别从高到低为:
  • FATAL
  • ERROR
  • WARN
  • INFO
  • DEBUG
moduleString模块名称:
  • 当设备端使用Android SDK时,模块名称为ALK-LK。
  • 当设备端使用C SDK时,需自定义模块名称。
  • 当设备端使用自行开发的SDK时,需自定义模块名称。
codeString结果状态码,Sting类型的数字。

错误码包含设备端SDK生成的错误码(Android SDK的错误码C SDK的错误码)和用户自定义的状态码。

traceContextString可选参数,上下文跟踪内容,设备端使用Alink协议消息的id,App端使用TraceId(追踪ID)。
logContentString日志内容详情。
methodString请求方法,取值thing.log.post

Alink响应数据格式:

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