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

本文介绍了Python第三方库loguru的使用方法,它简化了日志记录的配置,使得日志输出既可控制台显示,也可保存至文件。通过示例展示了基础和进阶的日志记录方式,包括自定义日志格式。此外,还分享了一种常用的日志记录模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

编写 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xavier Jiezou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值