如果您對遠(yuǎn)程errDump調(diào)試功能感到陌生,本教程將通過一步步操作演示,教您如何配置遠(yuǎn)程日志采集、解析errDump文件,以及定位關(guān)鍵錯(cuò)誤信息,讓您輕松獨(dú)立完成調(diào)試任務(wù)。
下文特別分享errDump功能及Air8101開發(fā)板實(shí)操驗(yàn)證。
一、errDump功能介紹
1.1 errDump有什么用?
errDump是LuatOS系統(tǒng)中的錯(cuò)誤日志上報(bào)模塊,主要用于遠(yuǎn)程調(diào)試與故障診斷。
其原理是將模塊運(yùn)行過程中產(chǎn)生的錯(cuò)誤信息或者應(yīng)用日志,通過TCP/UDP上報(bào)到互聯(lián)網(wǎng)上的指定服務(wù)器,技術(shù)人員可以在服務(wù)器上查閱日志,協(xié)助遠(yuǎn)程了解設(shè)備運(yùn)行情況或者故障診斷。
核心價(jià)值體現(xiàn)在:
1)實(shí)時(shí)監(jiān)控設(shè)備狀態(tài)將設(shè)備運(yùn)行時(shí)的錯(cuò)誤信息(如系統(tǒng)崩潰、協(xié)程異常、網(wǎng)絡(luò)故障等)通過TCP/UDP/HTTP協(xié)議上報(bào)到指定服務(wù)器。
2)支持量產(chǎn)設(shè)備維護(hù)對于已投放市場的設(shè)備,無需現(xiàn)場調(diào)試即可遠(yuǎn)程定位問題,顯著降低維護(hù)成本。
3)靈活配置用戶可自定義上報(bào)周期、服務(wù)器地址及日志類型,適應(yīng)不同場景需求。
1.2 錯(cuò)誤信息及日志類型
目前errDump支持2類錯(cuò)誤日志的儲存與上報(bào):
1)系統(tǒng)任務(wù)報(bào)錯(cuò)
腳本報(bào)錯(cuò)屬于系統(tǒng)異常日志,程序報(bào)錯(cuò)時(shí)會(huì)自動(dòng)寫入。
如果使用自動(dòng)上報(bào)到iot平臺,則在下次重啟會(huì)自動(dòng)讀取并上報(bào);如果是自行讀取上報(bào),可通過errDump.dump(buff,errDump.TYPE_SYS, ture) 來讀取系統(tǒng)異常日志,并根據(jù)自己需求自定義傳輸。
2)用戶自行寫入
用戶自行寫入異常日志,是通過 errDump.record() 接口來保存的異常日志。
如果設(shè)置了定時(shí)上報(bào)周期的話,則會(huì)定期上報(bào)到服務(wù)器中;如果自行讀取上報(bào)的話,可以通過 errDump.dump(nil, errDump.TYPE_SYS, true) 來讀取用戶異常日志,并根據(jù)自己需求自定義傳輸。
1.3 存儲區(qū)域與空間管理
日志文件都是儲存在文件系統(tǒng)中。系統(tǒng)異常日志文件和用戶異常日志文件最大都是4KB。
當(dāng)存儲空間不足時(shí),新日志會(huì)覆蓋最舊的數(shù)據(jù)。用戶可通過errDump.dump() 手動(dòng)讀取并清理日志,避免自動(dòng)覆蓋。
1.4 日志上報(bào)與讀取方式
1)自動(dòng)上報(bào)
通過errDump.config(enable, period, user_flag, custom_id, host, port) 配置服務(wù)器地址和周期(默認(rèn)600 秒)。上報(bào)成功后,本地日志自動(dòng)清空。
2)手動(dòng)讀取
使用errDump.dump(zbuff, type, isDelete) 讀取日志,支持指定類型(如系統(tǒng)日志、用戶日志)并選擇是否刪除。
3)自定義傳輸
禁用自動(dòng)上報(bào)后,用戶可通過errDump.dump() 獲取日志內(nèi)容,再通過MQTT、HTTP API等方式發(fā)送到自有服務(wù)器。
1.5 日志清除機(jī)制
1)自動(dòng)清除:設(shè)置自動(dòng)模式的話,上報(bào)到服務(wù)器成功后,本地日志自動(dòng)刪除。
2)手動(dòng)清除:設(shè)置手動(dòng)讀取模組,調(diào)用errDump.dump(nil, type, true) 指定日志類型并刪除。
3)覆蓋策略:系統(tǒng)/用戶日志達(dá)到4KB時(shí),新寫入內(nèi)容覆蓋舊數(shù)據(jù)。
二、 Air8101開發(fā)板e(cuò)rrDump示例
下文以Air8101開發(fā)板為例,演示errdump日志上報(bào)功能實(shí)操要點(diǎn)。
最新源碼及實(shí)操教程詳見:https://docs.openluat.com/air8101/luatos/app/base/errdump/
主要示例代碼如下:
1)main.lua
2)errdump_test.lua
本功能模塊為:使用自動(dòng)上報(bào)異常日志到iot平臺。
3)errdump_uart.lua
本功能模塊為:使用手動(dòng)讀取異常日志并通過串口傳出。
4)errdump_tcp.lua
本功能模塊為:手動(dòng)讀取異常日志上傳到自己平臺。
三、errDump實(shí)操驗(yàn)證
3.1 自動(dòng)上傳IoT平臺
云平臺:iot.openluat.com
1)登錄IoT平臺
手機(jī)號為賬號,默認(rèn)密碼888888,創(chuàng)建一個(gè)IoT賬號。
用這個(gè)賬號即可登錄IoT平臺,將Air8101的sta mac歸屬到此賬號名下。
2)新建一個(gè)項(xiàng)目
3)將你自己建的項(xiàng)目key復(fù)制到demo中
4)打開設(shè)備DEBUG開關(guān)
特別注意:使用IoT云服務(wù)器時(shí),迫于服務(wù)器壓力,只有手動(dòng)打開debug開關(guān),才會(huì)有日志上報(bào)。
5)LuaTools日志打印
6)云平臺查看錯(cuò)誤上報(bào)
3.2 手動(dòng)讀取通過串口上傳功能驗(yàn)證
手動(dòng)讀取系統(tǒng)異常日志和用戶自定義消息,并通過串口輸出。
1)LuaTools日志打印
2)串口打印異常日志
3.3 手動(dòng)讀取通過TCP上傳功能驗(yàn)證
手動(dòng)讀取系統(tǒng)異常日志和用戶自定義消息,并通過TCP協(xié)議上報(bào)到服務(wù)器中。
本文使用TCP服務(wù)器來演示:https://netlab.luatos.com/
1)啟動(dòng)TCP服務(wù)器
啟動(dòng)TCP服務(wù)器并修改demo中的IP和端口號:
2)LuaTools日志打印
3)服務(wù)器日志打印
今天的內(nèi)容就分享到這里了~
審核編輯 黃宇
-
調(diào)試
+關(guān)注
關(guān)注
7文章
612瀏覽量
34751 -
配置
+關(guān)注
關(guān)注
1文章
191瀏覽量
18940
發(fā)布評論請先 登錄
【匯總篇】小草手把手教你 LabVIEW 串口儀器控制
美女手把手教你如何裝機(jī)(中)
手把手教你keil+C51使用調(diào)試仿真中文教程
手把手教你安裝Quartus II
手把手教你學(xué)LabVIEW視覺設(shè)計(jì)
手把手教你開關(guān)電源PCB排板

手把手教你開發(fā)基于單片機(jī)的wifi通信的物聯(lián)網(wǎng)項(xiàng)目(遠(yuǎn)程燈控制)

手把手教你查找stm32 HardFault_Handler調(diào)試及問題方法

遠(yuǎn)程日志errDump調(diào)試功能實(shí)戰(zhàn)教程:案例驅(qū)動(dòng)的故障排查!

評論