![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 77
2Thunder
这个作者很懒,什么都没留下…
展开
-
学习 python logging(1): 基本用法
简介日志在编程中是十分重要,可以帮助我们跟踪事件、应用的运行情况、查问题、统计数据等。在记录日志时,通常表示某件事情的发生。python 中 logging 模块提供记录的基础方法:debug, info,warning, error, critical这五个方法的严重等级依次增加,对应关系:LEVELvalueused timeDEBUG10分析问题的时候...原创 2019-01-02 22:05:13 · 206 阅读 · 0 评论 -
学习 python logging(4): 标准库中的Handlers
在 python 的标准库中,有了很多已经定义好的 Handler , 这些 Handler 能覆盖我们在使用中的大部分情况, 包括将日志记录到文件中、将日志上传指定服务器等等,接下来就过一过这些 Handler 的基本信息。1. StreamHandler将日志消息发送到一个 File like的流对象实例中。 一个 StreamHandler 的实例中,初始化时会持有一个 stream 参...原创 2019-01-06 17:12:57 · 882 阅读 · 0 评论 -
学习 python logging(6): 用代码定义 Logger 的流程
在之前的章节有介绍,我们有三种方式去定义 Logger, 这一节来看一下用代码来定义的实际过程。logging.getLogger :1 定义如下:def getLogger(name=None): """ Return a logger with the specified name, creating it if necessary. If no name is...原创 2019-01-10 22:18:05 · 643 阅读 · 0 评论 -
学习 python logging(3):组合自己的Logger
python logging模块中各个基础组件在项目中,我们可能需要定义不同的日志格式,有时需要定位到某一行,有的就不需要,并且根据情况要筛选不同的日志等级,例如,生产环境就不需要打印 DEBUG 级别的日志。这就涉及到需要多个日志模型。python中定义了基本的日志组件让我们可以去组装和自定义以实现日志模型,功能包括日志信息过滤(脱敏)、筛选日志等级等等。这些组件包括:logging.Lo...原创 2019-01-05 17:18:44 · 3468 阅读 · 1 评论 -
学习 python logging(2): 格式化日志输出
1. 简介在实际项目中,我们可能需要根据实际需要去记录日志,包括记录的时间、进程号、日志的等级、出现的对应文件及行号等等,以帮助我们定位问题,分析过程。python已经为我们提供了基础的这些,包括:nameformat_strmeaningasctime%(asctime)sHuman-readable time when the LogRecord was crea...原创 2019-01-03 21:58:49 · 6531 阅读 · 0 评论 -
python中super方法的注意点
之前,碰到一个很有意思的问题,调用super之后,并没有按照预期执行。大概是如下的:#!/usr/bin/env python# -*- coding=utf-8 -*-class A(object): def __init__(self): print(type(self).mro()) def test(self): prin...原创 2018-07-26 21:57:24 · 261 阅读 · 0 评论 -
自定义python logging handler
1. 在实际操作中要考虑的点在工作中,日志是必不可少的信息来源,特别是在排错的时候。在不同公司,有这不同的日志文件风格,有的是每个日志文件按照日期,放在同一个文件夹下面,有的是根据pid去区分,可能都有自己特殊的需求。总结起来,就是如何去分割日志文件。在python中,logging模块只是线程安全的,并没有保证进程安全,因此,在实际的生产环境中,都是每个应用启动多个进程,实现longgi...原创 2018-07-25 22:54:03 · 1992 阅读 · 0 评论 -
Python中使用logging调用Logger.info方法的处理过程
本次分析一下Logger.info的流程1. Logger.info源码: def info(self, msg, *args, **kwargs): """ Log 'msg % args' with severity 'INFO'. To pass exception information, use the keyword ...原创 2018-05-19 20:39:32 · 56883 阅读 · 1 评论 -
python logging模块注册流程
python logging模块注册流程(以logging.config.dictConfig流程为例)最近在查看python logging相关的模块,用到了dictConfig这一函数,尝试着跟踪了一下,捋一捋在调用dictConfig之后,这些都发生了什么,我想,用fileConfig的流程也差不多,先记载dictConfig的加载流程,后面跟踪源码了之后再做更新。logging...原创 2018-05-17 23:23:04 · 715 阅读 · 0 评论 -
python :字符串
分割没有规则分隔符的字符串有些情况,需要分割字符串,用简单的split函数就可以了,但是,有些情况下,分隔符有多个,这时,需要用另外的方法:re.split>>> line = 'asdf fjdk; afed, fjek,asdf, foo'>>> import re>>> re.split(r'[;,\s]\s*', lin...原创 2018-02-16 19:34:13 · 185 阅读 · 0 评论 -
想法记录--http封装celery
前提celery是分布式任务队列,使用起来也十分方便,但是,在项目中会有所限制,不能把相关代码独立。导致有时候项目很臃肿。之前的文章中提到了把celery相关的做成基础库,来摆脱限制,但是有些不合理,不能够使用celery的一些特性,譬如频率限制等。但是,这也不方便且不合理:做成基础库之后需要再每个使用到相关任务的工程所在的机器或是容器装一遍。使用原味的celery如何解决参考...原创 2018-04-10 13:50:50 · 216 阅读 · 0 评论 -
python:数据结构
保留最新的N个元素使用collections.deque可以实现当创建了固定容量的deque之后,在容量已满的情况下,再插入数据,会自动移除对应个数的最旧的数据元素:>>> q = deque(maxlen=3)>>> q.append(1)>>> q.append(2)>>> q.append(3)&...原创 2018-02-07 11:39:38 · 199 阅读 · 0 评论 -
学习 python logging(5): `Formatter`、`Filter`、`LogRecord`解析
不看日志信息中那些文件信息、行号、进程号等附加信息,我们来看看各个组件中的方法和实现,有助于我们去了解我们在配置时需要加那些配置信息以及配置信息的规则。1. LogRecord1.1 LogRecord.__init__def __init__(self, name, level, pathname, lineno, msg, args, exc_info,...原创 2019-01-08 22:30:42 · 1584 阅读 · 0 评论