Python将控制台输出保存至文件(loguru)

Posted Xavier Jiezou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python将控制台输出保存至文件(loguru)相关的知识,希望对你有一定的参考价值。

引言

编写 Python 程序代码的时候,我们通常使用内置的 print() 函数实现必要信息在终端控制条的打印输出。但当需要输出的信息过多时,或为便于之后的查找,除直接在控制台输出外,将其保存于本地文件中不失为一个好的选择。今天将大家如何通过第三方库 loguru 来代替 print() 记录日志,实现将控制台输出保存至文件。

简介

loguru 是一个 Python 的第三方库,其功能是记录日志。日志是每个程序的基础,可以简化调试(debug)过程。养成良好的记录日志的习惯,是每个资深程序员的必备素养。

Python 有个内置的日志记录库 logging,但其配置相当繁琐,导致很多开发者直接使用 print() 替代。loguru 实现了日志记录器的自动化配置,让日志记录变得愉快而强大。

安装

pip install loguru

用法

基础

  1. 将日志信息输出到控制台
>>> from loguru import logger
>>> logger.info('hello world')
2022-03-01 20:37:54.968 | INFO     | __main__:<module>:1 - hello world
  1. 将日志信息输出到控制台的同时保存至本地文件
>>> 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')

参考

https://github.com/Delgan/loguru

以上是关于Python将控制台输出保存至文件(loguru)的主要内容,如果未能解决你的问题,请参考以下文章

Python模块——loguru日志模块简单学习

Python3 - Loguru 相见恨晚的输出日志工具

Python3 - Loguru 相见恨晚的输出日志工具

Python3 - Loguru 相见恨晚的输出日志工具

Python3 - Loguru 相见恨晚的输出日志工具

[Python]python3将print中的输出内容保存至txt文件