auto_dump_udp_srv.lua 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. --[[
  2. @module auto_dump_udp_srv
  3. @summary 自动上报异常日志到自建udp服务器功能模块
  4. @version 1.0
  5. @date 2025.09.3
  6. @author 孟伟
  7. @usage
  8. 本功能模块演示的内容为:
  9. 自动上报异常日志到自建udp服务器功能
  10. 自动上报异常日志到自建udp服务器,如果是系统异常日志,则会在重启后自动上报,如果是用户写入调试日志,则周期性上报。
  11. 使用此功能时需要注意的是,自己的udp服务器收到上报的dump日志时,需要回复一个大写的"OK"来通知模组服务器收到消息了,不然会重复发送,并且也不会删除已发送的日志
  12. ]]
  13. local function test_user_log()
  14. -- 如果当前时间点设置的默认网卡还没有连接成功,一直在这里循环等待
  15. while not socket.adapter(socket.dft()) do
  16. log.warn("auto_dump_udp_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. -- 下面演示自动发送异常日志到自建udp服务器,如果是系统异常日志,则会在重启后自动上报,如果是用户写入调试日志,则周期性上报。
  26. errDump.config(true,600,nil,nil,"112.125.89.8",47816)
  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)