Python:logging日志模块

本文主要参考:
Python实用教程系列——Logging日志模块 - 那个百分十先生的文章 - 知乎

在此对作者表示感谢!

在Python中,logging可以代替print()函数在代码调试中进行日志打印等。后者只适用于较小的程序中。但是在实际的工程项目中,我们需要保存程序运行的日志,以排查程序在某一个时候崩溃的具体原因,以便及时定位bug进行抢救。

一、日志等级

logging中的日志等级如下:
在这里插入图片描述
设置打印日志的级别,level级别以上的日志会打印出。默认WARNING 级别。

level = logging.DEBUG 、INFO 、WARNING、ERROR、CRITICAL

二、Logging.basicConfig()

logging.basicConfig()的参数除了日志等级以外,还可以设置其他的参数。

在这里插入图片描述
上表提到日志的输出格式参数format,其控制着日志输出的一些格式:
在这里插入图片描述

三、例子

实现将同一项目不同文件的日志同时输出到屏幕和log.txt。

  • 入口文件run.py
from xxx import Data
import logging

def setup_logger(pth):

    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    formatter = logging.Formatter(
        '%(asctime)s - %(name)s - %(levelname)s: - %(message)s',
        datefmt='%Y-%m-%d %H:%M:%S'
    )
    # 使用FileHandler输出到文件
    fh = logging.FileHandler(results_pth + 'log.txt')
    fh.setLevel(logging.DEBUG)
    fh.setFormatter(formatter)

    # 使用StreamHandler输出到屏幕
    ch = logging.StreamHandler()
    ch.setLevel(logging.DEBUG)
    ch.setFormatter(formatter)

    # 添加两个Handler
    logger.addHandler(ch)
    logger.addHandler(fh)

if __name__ == '__main__':

    pth = 'xxx'
    setup_logger(pth)
    logger = logging.getLogger(__name__)

    # data
    data = Data()
  • 调用文件data.py
import pandas as pd
import logging

logger = logging.getLogger(__name__)

class Data:

    def __init__(self, pth):

        logger.info('Loading data...')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值