在Python中,如果你想将日志同时输出到控制台和写入文件,你需要使用logging
模块来配置日志系统。以下是一个简单的例子,展示了如何设置日志记录器,以便它可以将日志消息输出到控制台并写入到一个文件中:
import logging
# 创建一个日志记录器
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG) # 设置日志级别
# 创建一个格式化器
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 创建一个控制台处理器,并将格式化器添加到处理器
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
# 创建一个文件处理器,并将格式化器添加到处理器
file_handler = logging.FileHandler('my_log_file.log')
file_handler.setFormatter(formatter)
# 将处理器添加到日志记录器
logger.addHandler(console_handler)
logger.addHandler(file_handler)
# 使用日志记录器记录日志
logger.debug('这是一个调试信息')
logger.info('这是一个普通信息')
logger.warning('这是一个警告')
logger.error('这是一个错误')
logger.critical('这是一个严重错误')
在这个例子中,logging.getLogger('my_logger')
创建了一个名为my_logger
的日志记录器。通过调用setLevel
方法,我们设置了日志记录器的最低日志级别为DEBUG
,这意味着所有级别的日志都会被处理。
我们创建了两个处理器:StreamHandler
用于将日志输出到控制台,FileHandler
用于将日志写入到文件my_log_file.log
中。每个处理器都使用了相同的格式化器,以确保日志消息的格式一致。
最后,我们将这两个处理器添加到日志记录器中,并使用不同级别的日志方法来记录日志。
如果你遇到日志没有写入文件的问题,可能的原因包括:
FileHandler
会抛出异常。检查这些常见问题点通常可以帮助你解决日志不写入文件的问题。如果问题仍然存在,你可以尝试在代码中添加异常处理来捕获可能的错误,并打印出来以便进一步调试。
领取专属 10元无门槛券
手把手带您无忧上云