专门为micropython设计的logging模块

2021/6/27 22:20:26

本文主要是介绍专门为micropython设计的logging模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

micropython-ulogger

micropython 上做logging不是一件容易的事情, micropython 有很多尚未完成的接口, 因此能记录到的日志内容非常有限, 我根据 micropython 的情况设计了这个 ulogger 的库.

特色:

micropython 中, 由于单片机的计算能力有限, 一切事情都需要快速地被处理和响应, 因此本模块设计的目的就是减少无所谓的操作. 因此本模块会和 CPython 的标准库 logging 有很大的不同.

如何安装?

通过 pypi 安装

#repl on your board
import upip
upip.install("micropython-ulogger")

手动安装(推荐)

请在本项目的 release 中下载一个最新版的.mpy文件, 将其放到开发板的 /lib 目录中或您程序的目录中.

注意: 推荐使用 .mpy 的文件, 这是针对 micropython 已经事先编译好的文件, 可以有效提高执行速度和内存开销.

如何使用?

快速入门

这是一个最简单的例子:

import ulogger
loggor = ulogger.Loggor(__name__)
loggor.info("hello world")

在上面的例子中, 一切将会使用默认的参数(级别为INFO, 输出到终端中.)

Handler的使用

现在. 我们来给他加点料

import ulogger

handler_to_term = ulogger.Handler(
    level=ulogger.INFO,
    colorful=True,
    fmt="&(time)% - &(level)% - &(name)% - &(fnname)% - &(msg)%",
    clock=None,
    direction=ulogger.TO_TERM,
)
handler_to_file = ulogger.Handler(
    level=ulogger.INFO,
    fmt="&(time)% - &(level)% - &(name)% - &(fnname)% - &(msg)%",
    clock=None,
    direction=ulogger.TO_FILE,
    file_name="logging.log",
    max_file_size=1024 # max for 1k
)
logger = ulogger.Logger(
    name = __name__,
    handlers = (
        handler_to_term,
        handler_to_file
    )
)

logger.info("hello", "world")
# 支持多参数填入

ulogger 中, 有一点与 CPythonlogging 模块不一样: 在 logging 模块中, formatterhandler 是分开的, 但是在本模块中, 我将两者合为一体, 这可以减少日志模块的工作量(你肯定不希望你的开发板花费太多时间在记录日志吧!), 当然这会减少可配置性, 但是我们总是要为了提高性能付出一点代价.

详细信息请查看GitHub主页
详细信息请查看GitHub主页
详细信息请查看GitHub主页
详细信息请查看GitHub主页



这篇关于专门为micropython设计的logging模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程