python:logging的简单使用

上代码分析

import logging
import time
import requests

logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s - %(name)s - %(levelname)s - %(filename)s - %(lineno)d - %(message)s')
logger = logging.getLogger(__name__)


def down():
    start_time = time.time()
    url = 'http://preview.ewang.com/movie/videos/854x48067369f5dbb3849c2b444658990fc3eb8.mp4'
    resp = requests.get(url,stream=True, verify=False)
    # 对链接发起请求,获取返回的头信息,包含链接对应的文件大小
    headers = resp.headers
    # print(heasers)
    # 获取返回的头信息中文件大小,当前单位为B,转化为MB
    c_length = headers['Content-Length']
    all_size = int(c_length) / 1024 / 1024
    all_size = ("%.2f" % all_size)
    # print(c_length)
    # 下载尺寸初始为0
    down_size = 0
    # 文件名
    file_name = '1.mp4'
    with open(file_name, 'wb') as f:
        for chunk in resp.iter_content(5555):
            if chunk:
                try:
                    f.write(chunk)
                    # 目前文件大小
                    now_size = down_size / 1024 / 1024
                    now_size = ("%.2f" % now_size)
                    # 每次写入,文件增加
                    down_size += len(chunk)
                    # 下载速度,这是总速度,注意初始时间的位置和文件置零的位置,都在循环外
                    down_speed = down_size / 1024 / (time.time() - start_time)
                    down_speed = ("%.2f" % down_speed)
                    # 单行打印
                    print("\r", file_name, ' 下载中',
                          ' {} KB/s - {} MB, 共 {} MB'.format(down_speed, now_size, all_size), end="", flush=True)
                except:
                    logging.info('下载异常')
        print("\r", file_name, ' 下载结束', end="", flush=True)


logging.info('下载启动')
down()

关于日志logging的使用配置:

logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s - %(name)s - %(levelname)s - %(filename)s - %(lineno)d - %(message)s')

里面format了六个参数,asctime,格式化的标准时间,name,是root,权限之类的吧,levelname,等级,这里是info,常见的有debug,warning,error等,filename,是当前执行的python文件名,lineno,行数,message,信息。

如上代码:

时间,权限,等级是INFO ,执行的是log.py文件,在47行,打印的message是下载启动。

这个代码还动态的显示了下载速度,感兴趣可以试一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值