【python】logging日志输出及保存至文件

本文介绍了如何使用Python的logging模块在控制台和文件中分别记录不同级别的日志,包括debug、info、warning、error和critical,同时使用了TimedRotatingFileHandler进行时间轮换以管理文件数量。
摘要由CSDN通过智能技术生成

参考:

  1. python + logging 实现日志输出及保存到文件
  2. Python + logging 输出到屏幕,将log日志写入文件
import logging
from logging import handlers

def get_logger(logger_name, file_path):	# logger名和logger文件存放地址
    logger = logging.getLogger(logger_name)
    logger.setLevel(level=logging.DEBUG)
    formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')

    time_rotating_file_handler = handlers.TimedRotatingFileHandler(file_path, when="MIDNIGHT", interval=1, backupCount=30)	#每天零点存一个文件,最多30个
    time_rotating_file_handler.setLevel(logging.DEBUG)
    time_rotating_file_handler.setFormatter(formatter)

    stream_handler = logging.StreamHandler()
    stream_handler.setLevel(logging.DEBUG)
    stream_handler.setFormatter(formatter)

    logger.addHandler(time_rotating_file_handler)
    logger.addHandler(stream_handler)

    return logger

if __name__ == '__main__':
	logger = get_logger('test','./test.log')
	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.')
    try:
    	x = 1/0
    	logger.info(x)
    except Exception as e:
    	logger.error(e)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 中,我们可以使用内置的 logging 模块来保存日志文件。这个模块提供了丰富的功能,可以按照不同的级别(如 DEBUG、INFO、WARNING、ERROR 等)记录日志信息,并可以将日志信息输出到控制台或者文件中。下面是一个简单的例子,演示如何使用 logging 模块保存日志文件: ```python import logging # 创建一个 logger 对象 logger = logging.getLogger('mylogger') logger.setLevel(logging.DEBUG) # 创建一个文件处理器,用于将日志信息写入文件中 fh = logging.FileHandler('mylogfile.log') fh.setLevel(logging.DEBUG) # 创建一个控制台处理器,用于将日志信息输出到控制台 ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) # 创建一个日志格式器 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) ch.setFormatter(formatter) # 将处理器添加到 logger 对象中 logger.addHandler(fh) logger.addHandler(ch) # 记录一些日志信息 logger.debug('debug message') logger.info('info message') logger.warning('warning message') logger.error('error message') logger.critical('critical message') ``` 在上面的例子中,我们首先创建了一个 logger 对象,并设置了日志级别为 DEBUG。然后,我们创建了一个文件处理器和一个控制台处理器,并分别设置了它们的日志级别和日志格式。最后,我们将这些处理器添加到 logger 对象中,就可以使用 logger 对象记录日志信息了。在这个例子中,我们记录了 5 条不同级别的日志信息,这些信息将保存在 "mylogfile.log" 文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值