python 日志输出

本文详细探讨了Python的日志模块,包括如何配置日志记录级别、输出格式和处理器,以及如何将日志发送到文件和控制台。通过实例代码,展示了如何在应用程序中有效地使用logging模块来跟踪和调试信息。
摘要由CSDN通过智能技术生成
import configparser
import logging
from logging.handlers import TimedRotatingFileHandler
import re
def setup_log(logpath):
    # 创建logger对象。传入logger名字
    log_path1 = '/'.join(logpath.split('/')[0:-1])
    log_name = logpath.split('/')[-1]
    if not os.path.exists(log_path1):
        os.makedirs(log_path1)
    logger = logging.getLogger(log_name)
    logger.__dict__['handlers'].clear()
    # 设置日志记录等级
    logger.setLevel(logging.INFO)
    # backupCount  表示日志保存个数
    file_handler = TimedRotatingFileHandler(filename=logpath, when="MIDNIGHT", interval=1,
                                            backupCount=int(num))
    file_handler.suffix = "%Y-%m-%d.log"
    # extMatch是编译好正则表达式,用于匹配日志文件名后缀
    file_handler.extMatch = re.compile(r"^\d{4}-\d{2}-\d{2}.log$")
    # 定义日志输出格式
    file_handler.setFormatter(
        logging.Formatter(
            "[%(asctime)s] [%(process)d] 
Python 中,可以使用标准库中的 logging 模块来实现日志输出到多个文件。下面是一个简单的示例代码,演示了如何将日志同时输出到两个不同的文件中: ```python import logging # 创建 logger 对象 logger = logging.getLogger(__name__) # 创建文件处理器,将日志输出到 file1.log 文件中 file_handler_1 = logging.FileHandler('file1.log') file_handler_1.setLevel(logging.INFO) # 创建文件处理器,将日志输出到 file2.log 文件中 file_handler_2 = logging.FileHandler('file2.log') file_handler_2.setLevel(logging.WARNING) # 设置日志格式 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') file_handler_1.setFormatter(formatter) file_handler_2.setFormatter(formatter) # 将处理器添加到 logger 对象中 logger.addHandler(file_handler_1) logger.addHandler(file_handler_2) # 输出日志信息 logger.debug('debug message') logger.info('info message') logger.warning('warning message') logger.error('error message') logger.critical('critical message') ``` 在上面的代码中,我们首先创建了一个 logger 对象,并为其设置了两个不同的文件处理器。然后,我们设置了日志级别和日志格式,并将处理器添加到 logger 对象中。最后,我们通过 logger 对象输出了一些日志信息。 在运行上面的代码后,会在当前目录下生成两个日志文件:file1.log 和 file2.log。其中,file1.log 中包含了所有级别的日志信息,而 file2.log 中只包含了 WARNING、ERROR 和 CRITICAL 级别的日志信息。 如果需要输出到更多的日志文件,只需要创建更多的文件处理器,并将它们添加到 logger 对象中即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值