【Python】将控制台输出保存至文件(loguru)
Xavier Jiezou

引言

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

简介

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

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

安装

1
pip install loguru

用法

基础

  1. 将日志信息输出到控制台

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

1
2
3
4
5
6
7
8
9
10
>>> 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

进阶

如果感觉输出的日志信息格式比较丑,可以通过以下方式更改

1
2
3
4
5
6
7
>>> 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
1
2
3
4
5
6
7
>>> 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

拓展

这里分享一下笔者常用的日志记录方式。

1
2
3
4
5
6
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)
  • 本文作者:Xavier Jiezou
  • 创建时间:2022-03-01 20:02:45
  • 本文链接:https://github.ghgxj.xyz/2022/03/01/【Python】将控制台输出保存至文件(loguru)/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论