errDump - 错误上报
以下为关键点梳理
一、模块概述
errDump 模块主要用于处理和管理设备的异常日志,包括读取、记录和上传日志等功能,帮助开发者监控设备运行状态和排查问题。它支持将日志发送到合宙 IoT 平台或用户自定义的服务器。
二、核心功能与用法
(一)手动读取异常日志
- 函数 :
errDump.dump(zbuff, type, isDelete)
-
参数 :
-
zbuff :用于存储读取到的日志数据的缓冲区。
- type :指定日志的类型,如
errDump.TYPE_SYS
表示系统记录的异常日志。 - isDelete :布尔值,
true
表示读取后删除日志,false
表示仅读取不删除。 - 返回值 :返回读取到的日志数据。
-
示例 :
-
local result = errDump.dump(buff, errDump.TYPE_SYS, false)
:读取系统记录的异常日志到缓冲区 buff 中,且不删除日志。 local result = errDump.dump(nil, errDump.TYPE_SYS, true)
:清除系统记录的异常日志。
(二)写入用户异常日志
- 函数 :
errDump.record(string)
- 参数 :
string
为要记录的日志字符串,最大容量 4KB,超出部分新日志覆盖旧日志。 - 返回值 :无。
- 示例 :
errDump.record("socket long time no connect")
:记录下 “socket long time no connect” 这条日志。
(三)配置日志上传
- 函数 :
errDump.config(ena``ble, period, user_flag, custom_id, host,`` port)
-
参数 :
-
enable :布尔值,
true
表示启用日志上传功能,false
表示关闭。 - period :设置日志上传的时间间隔,单位为秒。若设为 0,则仅记录日志但不主动上传,由用户自行实现上传功能。
- user_flag :附加在上传日志时的标识信息,可为
nil
。 - custom_id :自定义的设备识别号,用于在上传日志时区分设备。
- host :指定上传日志的目标服务器地址。
- port :指定上传日志的目标服务器端口。
- 返回值 :无。
-
示例 :
-
errDump.config(true, 3600, "12345678")
:每小时尝试上传一次日志,并在上传时在 imei 后附加 "12345678"。 errDump.config(false)
:关闭日志记录和上传功能。errDump.config(true, 0)
:记录日志但不主动上传。errDump.config(true, 3600, nil, "ABC")
:每小时尝试上传一次日志,使用自定义设备识别号 "ABC"。errDump.config(true, 3600, nil, nil, "dev_msg1.openluat.com", 12425)
:每小时尝试上传一次日志到指定的服务器地址和端口。
三、其他信息
-
关于合宙 IoT 云平台 :
- 平台网址 :IoT.openLuat.com。
- 账号管理 :模组出厂前,会根据客户下单时的说明,将订单内模组的 IMEI 放在指定的 IoT 账号内。若未指定,则默认用收件人手机号建立新账号,密码默认为 888888。只有账号拥有者可对其账号下的设备进行管理,包括账号权限转移、FOTA、errDump 设置等操作,合宙无法代替操作。
- 注意事项 :若在
errDump.config
中配置了周期上传,则不能使用errDump.dump
函数。
以下为详细说明
示例
-- 基本用法, 10分钟上报一次,如果有的话
if errDump then
errDump.config(true, 600)
end
-- 附开源服务器端: https://gitee.com/openLuat/luatos-devlog
errDump.dump(zbuff, type, isDelete)
手动读取异常日志;
主要用于用户将日志发送给自己的服务器,而不是合宙IoT平台(IoT.openLuat.com);
如果在errDump.config配置了周期上传,则不能使用本函数;
参数
传入值类型 | 解释 |
---|---|
zbuff | 日志信息缓存,如果为nil就不会读出,一般当 |
int | 日志类型,目前只有errDump.TYPE_SYS和errDump.TYPE_USR |
boolean | 是否删除日志 |
返回值
返回值类型 | 解释 |
---|---|
boolean | true表示本次读取前并没有写入数据,false反之,在删除日志前,最好再读一下确保没有新的数据写入了 |
例子
local result = errDump.dump(buff, errDump.TYPE_SYS, false) --读出系统记录的异常日志
local result = errDump.dump(nil, errDump.TYPE_SYS, true) --清除系统记录的异常日志
errDump.record(string)
写入用户的异常日志,注意最大只有4KB,超过部分新的覆盖旧的,开启自动上传后会上传到合宙IoT平台(IoT.openLuat.com)
参数
传入值类型 | 解释 |
---|---|
string | 日志 |
返回值
返回值类型 | 解释 |
---|---|
nil | 无返回值 |
例子
errDump.record("socket long time no connect") --记录下"socket long time no connect"
errDump.config(enable, period, user_flag, custom_id, host, port)
配置关键日志上传合宙IoT平台(iot.openluat.com),这里的日志包括引起luavm异常退出的日志和用户通过record写入的日志,类似于air的errDump
参数
传入值类型 | 解释 |
---|---|
boolean | 是否启用记录功能,false的话将不会记录任何日志 |
int | 定时上传周期,单位秒,默认600秒,这个是自动上传时候后的重试时间时间,在开机后或者有record操作后会很快尝试上传到合宙IoT平台一次,如果为0,则不会上传,由用户dump后自己上传自己的平台 |
string | 用户的特殊标识,可以为空 |
string | 设备识别号, 4G设备默认是imei,其他设备默认是mcu.unique_id |
string | 服务器域名,默认dev_msg1.openluat.com |
int | 服务器端口,默认 |
返回值
返回值类型 | 解释 |
---|---|
nil | 无返回值 |
例子
errDump.config(true, 3600, "12345678") --一个小时尝试上次一次,上传时会在imei后附加上12345678
errDump.config(false) --关闭记录功能,不再上传
errDump.config(true, 0) --记录,但是不会主动上传,由用户实现上传功能
-- 2023.09.22新增custom_id参数
errDump.config(true, 3600, nil, "ABC") --一个小时尝试上次一次,上传时使用自定义的设备识别号ABC
-- 2023.12.8 新增host和port参数
errDump.config(true, 3600, nil, nil, "dev_msg1.openluat.com", 12425)
关于合宙IoT云平台的说明
-
合宙IoT云平台网址:IoT.openLuat.com ;
-
合宙模组在出厂前,会按照下单前客户的说明,将订单内模组的IMEI放在下单人指定的IoT账号内,如果没有指定,则默认用收件人的手机号建立一个新账号,密码默认888888,并将该订单内模组的IMEI放在该账号下;
-
只有该账号的拥有者才可以对其账号下的设备进行管理,包括账号权限转移、FOTA、errDump设置等相关操作,合宙无法代替操作;