Python使用logging模块处理日志
日志示例
import logging
# 在logging.basicConfig()函数中设置level为DEBUG级,输出格式format为'%(asctime)s - %(levelname)s - %(message)s')
# 这样在logging.debug(message)处会输出这样的信息:2025-08-15 10:15:15,098 - DEBUG - Start of the program
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s')
logging.debug('Start of the program')
def factorial(n):
logging.debug('Start of factorial(%s%%)' % (n))
total = 1
for i in range(1,n+1):
total *=i
logging.debug('i is ' + str(i) + ', total is ' + str(total))
logging.debug('End of factorial(%s%%)' % (n))
return total
print(factorial(5))
logging.debug('End of the program.')
运行后:
2025-08-15 10:15:15,098 - DEBUG - Start of the program
2025-08-15 10:15:15,098 - DEBUG - Start of factorial(5%)
2025-08-15 10:15:15,099 - DEBUG - i is 1, total is 1
2025-08-15 10:15:15,099 - DEBUG - i is 2, total is 2
2025-08-15 10:15:15,099 - DEBUG - i is 3, total is 6
2025-08-15 10:15:15,099 - DEBUG - i is 4, total is 24
2025-08-15 10:15:15,099 - DEBUG - i is 5, total is 120
2025-08-15 10:15:15,100 - DEBUG - End of factorial(5%)
120
2025-08-15 10:15:15,100 - DEBUG - End of the program.
日志的级别
Python中的日志级别有5种,分别是:(由低到高)
禁用日志
调试完程序后,可以使用logging.disable()
禁用这些消息。向logging.disable()
传入一个级别,程序就会禁用这个级别及以下的所有日志消息。因此,当传入logging.disable(logging.CRITICAL)
时,将会禁用所有日志。
将日志记录到文件
在logging.basicConfig()
中传入filename
关键字参数,指向一个文件(一般是.txt文件)。
logging.basicConfig(filename='mylog.txt',
level=logging.DEBUG,
format='%(asctime)s - %(levelname)s - %(message)s')
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏