auto_dump_air_srv.lua 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --[[
  2. @module auto_dump_air_srv
  3. @summary 自动上报异常日志到iot平台功能模块
  4. @version 1.0
  5. @date 2025.09.3
  6. @author 孟伟
  7. @usage
  8. 本功能模块演示的内容为:自动上报异常日志到iot平台功能
  9. 自动上报异常日志到合宙iot平台,如果是系统异常日志,则会在重启后自动上报,如果是用户写入调试日志,则周期性上报。
  10. ]]
  11. -- 使用合宙iot平台时需要这个参数
  12. PRODUCT_KEY = "123" -- 到 iot.openluat.com 创建项目,获取正确的项目id
  13. local function test_user_log()
  14. -- 如果当前时间点设置的默认网卡还没有连接成功,一直在这里循环等待
  15. while not socket.adapter(socket.dft()) do
  16. log.warn("auto_dump_air_srv_task_func", "wait IP_READY", socket.dft())
  17. -- 在此处阻塞等待默认网卡连接成功的消息"IP_READY"
  18. -- 或者等待1秒超时退出阻塞等待状态;
  19. -- 注意:此处的1000毫秒超时不要修改的更长;
  20. -- 因为当使用exnetif.set_priority_order配置多个网卡连接外网的优先级时,会隐式的修改默认使用的网卡
  21. -- 当exnetif.set_priority_order的调用时序和此处的socket.adapter(socket.dft())判断时序有可能不匹配
  22. -- 此处的1秒,能够保证,即使时序不匹配,也能1秒钟退出阻塞状态,再去判断socket.adapter(socket.dft())
  23. sys.waitUntil("IP_READY", 1000)
  24. end
  25. -- 下面演示自动发送异常日志到合宙iot平台,如果是系统异常日志,则会在重启后自动上报,如果是用户写入调试日志,则周期性上报。
  26. errDump.config(true, 600)
  27. while true do
  28. sys.wait(15000)
  29. -- 上报用户调试日志
  30. errDump.record("测试一下用户的调试日志记录功能")
  31. end
  32. end
  33. --故意写错用来触发系统异常日志记录
  34. local function test_error_log()
  35. sys.wait(60000)
  36. --故意写错代码死机
  37. lllllllllog.info("此处使用一个不存在的库文件,导致出现异常")
  38. end
  39. -- 启动errdemp测试任务
  40. sys.taskInit(test_user_log)
  41. --启动错误函数任务
  42. sys.taskInit(test_error_log)