logging模块的应用

因项目采集日志需求,作者总结了Python内置的logging模块使用。该模块可设置日志等级、保存路径和文件回滚等,相比print有诸多优点,如可按不同阶段输出不同信息,避免影响开发者查看标准输出数据,还展示了控制台输出示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目中有一个采集日志的需求,因此去了解了一下logging模块的使用,虽然网上一查就有很多资料可以参考,但还是在这里总结一下,加深理解。

一、logging模块简介

logging是python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等。

它与print相比具有以下优点:

    1、可以通过设置不同的日志等级,在程序的调试和正式发布阶段分别输出调试需要输出的信息和正式运行时输出的日志。

    2、我们在调试程序时往往选择print的方式输出信息,而print会将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据。

二、简单的使用

#! /usr/bin/env python
# coding: utf-8
import os
import logging
import sys

def main():
    # 获取logger实例,如果参数为空则返回root logger
    logger = logging.getLogger("my_log")

    # 设置日志输出格式
    
    formatter = logging.Formatter('%(asctime)s [%(filename)s:%(lineno)s][%(levelname)s] %(message)s')

    # 文件日志
    file_handler = logging.FileHandler("test.log")
    file_handler.setFormatter(formatter)

    # 控制台日志
    console_handler = logging.StreamHandler(sys.stdout)
    console_handler.setFormatter(formatter)

    # 为logger添加的日志处理器
    logger.addHandler(file_handler)
    logger.addHandler(console_handler)

    # 指定日志的最低输出级别,默认为WARN级别
    logger.setLevel(logging.INFO)

    # 输出不同级别的log
    logger.debug('this is debug info')
    logger.info('this is information')
    logger.warn('this is warning message')
    logger.error('this is error message')
    logger.critical('this is critical message')

if __name__ == '__main__':
    main()

控制台输出:

F:\python\MyTest\venv\Scripts\python.exe F:/python/MyTest/common/logger.py
2019-05-19 11:15:00,733 [logger.py:75][INFO] this is information
2019-05-19 11:15:00,733 [logger.py:76][WARNING] this is warning message
2019-05-19 11:15:00,733 [logger.py:77][ERROR] this is error message
2019-05-19 11:15:00,733 [logger.py:78][CRITICAL] this is critical message

三、日志文件回滚

handler = logging.handlers.RotatingFileHandler(filename, maxBytes=10*1024*1024, backupCount=5)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值