日志示例

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种,分别是:(由低到高)

级别

日志函数

描述

DEBUG

logging.debug()

最低级别,用于小细节,通常在诊断时才用。

INFO

logging.info()

记录程序中的一般时间的信息,或者确认一切正常

WARNING

logging.warning()

表示可能的问题,当前不会阻止程序运行,但将来可能会

ERROR

logging.error()

表示错误,会导致程序做某事失败

CRITICAL

logging.critical()

最高级别,致命错误,会导致程序完全停止

禁用日志

调试完程序后,可以使用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')