1.前言
为了记录程序运行过程中的信息,便想着找一个能记录日志文件的模组,在cPython中常用的日志记录模组是logging,但是mpy不一定有,便去mpy官方模组托管库(https://github.com/micropython/micropython-lib.git
)查了下,发现已经有了,位于python-stdlib\logging目录中,但是查看源码以及例子发现功能很简单,没有文件记录功能。只好自己手动完善一下了。参考了cPython的logging使用方法,将日志记录相关简单实现了下,可以兼容。
2.安装使用
我整理好的logging模组已经上传到了我的gitee仓库:https://gitee.com/l_y_r/mpy_lib.git
下载下来将其中的logging.py上传到你的linux设备中,并仿照example_logging.py使用
- 简单使用
import logging logging.debug('debug message') logging.info('info message') logging.warning('warn message') logging.error('error message') logging.critical('critical message')
- 记录到文件
import logging logging.basicConfig(level=logging.DEBUG,filename='/logger.log', format='%(asctime)s : %(message)s') logging.debug('debug message should go to the log file') logging.info('info message should go to the log file') logging.warning('warn message should go to the log file') logging.error('error message should go to the log file') logging.critical('critical message should go to the log file')
- 记录到文件同时打印到标准输出
import logging logger=logging.getLogger() fh = logging.FileHandler('/logger.log') formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) logger.setLevel(level = logging.DEBUG) logger.addHandler(fh) logger.debug('debug message') logger.info('info message')
3.log记录的一些配置
3.1Formatter 格式化器
用来控制打印的格式,常用的格式关键字如下:
- asctime: 记录时间
- name: 记录者,初始化
getLogger([name])
时传入,默认为root - levelname: 日志级别,(debug, info, waring, error, critical)
- message: 记录的信息
格式关键字使用%()s的形式引用,例如format='%(asctime)s : %(message)s'