在Python中,您可以使用内置的 `logging` 模块来输出日志到文件。以下是一个简单的示例代码,展示了如何配置和使用 `logging` 模块来记录日志信息到文件:
import logging
配置日志记录器
logging.basicConfig(filename='example.log', level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
在不同级别上记录一些日志消息
logging.debug('这是一条调试信息')
logging.info('这是一条普通信息')
logging.warning('这是一条警告信息')
logging.error('这是一条错误信息')
logging.critical('这是一条严重错误信息')
执行上述代码后,会在当前目录下生成一个名为 `example.log` 的日志文件,其中包含记录的日志信息。
您还可以配置日志记录器以支持日志文件的轮转,以防日志文件过大。例如,使用 `RotatingFileHandler` 可以实现日志文件的自动切割和压缩:
import logging
创建一个日志记录器
logger = logging.getLogger('book_tool')
logger.setLevel(logging.DEBUG)
创建一个文件处理器,并设置日志文件的轮转
handler = logging.handlers.RotatingFileHandler('book_tool.log', maxBytes=1024 * 1024, backupCount=5, encoding='utf-8')
创建一个日志格式器
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
将处理器添加到日志记录器
logger.addHandler(handler)
输出日志
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
在这个例子中,当日志文件大小超过1MB时,`RotatingFileHandler` 会自动创建一个新的日志文件,并保存最近5个文件,从而避免单个日志文件过大。
希望这些示例能帮助您理解如何在Python中输出日志到文件