Python将控制台输出保存至文件(loguru)
Posted Xavier Jiezou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python将控制台输出保存至文件(loguru)相关的知识,希望对你有一定的参考价值。
引言
编写 Python 程序代码的时候,我们通常使用内置的 print()
函数实现必要信息在终端控制条的打印输出。但当需要输出的信息过多时,或为便于之后的查找,除直接在控制台输出外,将其保存于本地文件中不失为一个好的选择。今天将大家如何通过第三方库 loguru 来代替 print()
记录日志,实现将控制台输出保存至文件。
简介
loguru 是一个 Python 的第三方库,其功能是记录日志。日志是每个程序的基础,可以简化调试(debug)过程。养成良好的记录日志的习惯,是每个资深程序员的必备素养。
Python 有个内置的日志记录库 logging,但其配置相当繁琐,导致很多开发者直接使用 print()
替代。loguru 实现了日志记录器的自动化配置,让日志记录变得愉快而强大。
安装
pip install loguru
用法
基础
- 将日志信息输出到控制台
>>> from loguru import logger
>>> logger.info('hello world')
2022-03-01 20:37:54.968 | INFO | __main__:<module>:1 - hello world
- 将日志信息输出到控制台的同时保存至本地文件
>>> from loguru import logger
>>> logger.add('out.log')
1
>>> logger.info('hello world')
2022-03-01 20:42:22.011 | INFO | __main__:<module>:1 - hello world
>>> with open('out.log') as f:
... print(f.read())
...
2022-03-01 20:42:22.011 | INFO | __main__:<module>:1 - hello world
进阶
如果感觉输出的日志信息格式比较丑,可以通过以下方式更改
>>> import sys
>>> from loguru import logger
>>> logger.remove()
>>> logger.add(sys.stdout, format='time level message')
1
>>> logger.info('hello world')
2022-03-01T21:26:46.850506+0800 INFO hello world
>>> import sys
>>> from loguru import logger
>>> logger.remove()
>>> logger.add(sys.stdout, format='time message')
1
>>> logger.info('hello world')
2022-03-01T21:28:43.093011+0800 hello world
拓展
这里分享一下笔者常用的日志记录方式。
import sys
from loguru import logger
logger.remove()
logger.add(sys.stdout, level='INFO', format='message')
logger.add('output.log', level='INFO', format='message')
logger.info('hello world')
参考
以上是关于Python将控制台输出保存至文件(loguru)的主要内容,如果未能解决你的问题,请参考以下文章