當程序運行出現問題時,日志記錄是一種非常有用的工具,它可以幫助我們追蹤和定位問題。在 MicroPython 中,可以使用 log 模塊來記錄程序運行中的信息。本文將介紹 log 模塊的使用方法和常見功能。
日志級別
log.DEBUG
常量,用來標識 LOG 等級,最詳細的日志信息,通常只在開發和調試時使用。
log.INFO
常量,用來標識 LOG 等級,確認一切按預期運行。
log.WARNING
常量,用來標識 LOG 等級,表明發生了一些意外,或者指示可能出現問題的情況,但仍然可以繼續執行。
log.ERROR
常量,用來標識 LOG 等級,由于更嚴重的問題,應用程序已不能執行某些功能。
log.CRITICAL
常量,用來標識 LOG 等級,指出應用程序中的嚴重錯誤,可能導致應用程序停止運行。
日志設置
log.basicConfig
設置日志輸出級別,默認為 log.INFO,系統只會輸出 level 數值大于或等于該 level 的的日志結果。
log.basicConfig(level)
參數描述:
level
?- 日志等級
返回值描述:
無
示例:
import log
log.basicConfig(level=log.INFO)
log.set_output
設置日志輸出的位置,目前只支持 uart 和 usys.stdout
log.set_output(out)
參數描述:
out
?- 日志輸出位置,輸出到指定串口或者交互口,默認不設置為交互口輸出,類型參考示例
返回值描述:
無
示例:
import log
log.basicConfig(level=log.INFO)
Testlog = log.getLogger("TestLog")# 設置輸出到debug口
from machine import UART
uart = UART(UART.UART0, 115200, 8, 0, 1, 0)log.set_output(uart)Testlog.info("this is a Test log") # 會輸出帶對應的uart口# 從uart口切換成交互口輸出
import usys
log.set_output(usys.stdout)Testlog.info("this is a Test log") # 會輸出到交互口
日志輸出
log.getLogger
獲取 log 對象,對象支持輸出不同等級的 log 信息。
Testlog = log.getLogger(name)
參數描述:
name
?- 當前 log 對象的主題信息,字符串類型
返回值描述:
- log 操作句柄,也可理解成 log 對象,擁有 log 輸出的方法。
log.debug
輸出 DEBUG 級別的日志。
Testlog.debug(msg)
參數描述:
msg
?- 日志內容,字符串類型
log.info
輸出 INFO 級別的日志。
Testlog.info(msg)
參數描述:
msg
?- 日志內容,字符串類型
log.warning
輸出 WARNING 級別的日志。
Testlog.warning(msg)
參數描述:
msg
?- 日志內容,字符串類型
log.error
輸出 ERROR 級別的日志。
Testlog.error(msg)
Copy
參數描述:
msg
?- 日志內容,字符串類型
log.critical
輸出 CRITICAL 級別的日志。
Testlog.critical(msg)
參數描述:
msg
?- 日志內容,字符串類型
示例:
import log# 設置日志輸出級別
log.basicConfig(level=log.INFO)
# 獲取logger對象,如果不指定name則返回root對象,多次使用相同的name調用getLogger方法返回同一個logger對象
Testlog = log.getLogger("Quec")Testlog.error("Test error message!!")
Testlog.debug("Test debug message!!")
Testlog.critical("Test critical message!!")
Testlog.info("Test info message!!")
Testlog.warning("Test warning message!!")