日志模块

logging模块默认收集的日志是warning以上等级的

日志一共分为5个等级,从低到高分别是:

级别 说明
DEBUG 输出详细的运行情况,主要用于调试
INFO 确定一切按预期运行,一般用于输出重要运行情况
WARNING 一些意想不到的事情发生了(比如:“警告:内存空间不足”),但是这个软件还能按预期工作,在不久的将来,会出现问题
ERROR 发生错误,软件没能执行一些功能,还可以继续执行
CRITICAL 一个严重的错误,表名程序本身可能无法继续运行

导包

import logging
获取默认的日志收集器root
my_log = logging.getLogger()
设置默认的日志收集器等级
my_log.setLevel('DEBUG')

自定义日志收集器

一、创建一个名为python的日志收集器
my_log = logging.getLogger('python')
二、设置日志收集器的等级
my_log.setLevel('DEBUG')
三、添加输出渠道
① 输出到控制台

####### 1、创建一个输出到控制台的输出渠道

sh = logging.StreamHandler()

####### 2、设置输出等级

sh.setLevel('ERROR')

####### 3、将输出渠道绑定到日志收集器上

my_log.addHandler(sh)
② 输出到文件

####### 1、创建一个输出到文件中的输出渠道

fh = logging.FileHandler('log.log', encoding='utf8')

####### 2、设置输出等级

fh.setLevel('DEBUG')

####### 3、将输出渠道绑定到日志收集器上

my_log.addHandler(fh)
四、设置日志输出格式
1、创建一个日志输出格式
formatter = logging.Formatter('%(asctime)s - [%(filename)s-->line:%(lineno)d] - %(levelname)s: %(message)s')

2、将输出格式和输出渠道进行绑定
sh.setFormatter(formatter)
fh.setFormatter(formatter)

日志的轮转

① 按文件大小进行轮转

from logging.handlers import RotatingFileHandler

创建一个按文件大小轮转的文件输出渠道

fh = RotatingFileHandler(filename=file_name,
mode='a',
encoding='utf8',
maxBytes=1024 * 1024 * 20,
backupCount=3)

参数:

  • maxBytes:设置文件的大小(单位:字节)

    • 1024字节=1kb
    • 1024kb = 1Mb
  • backupCount:轮转的文件数量

② 按时间进行轮转

from logging.handlers import TimedRotatingFileHandler

创建一个按时间进行轮转的文件输出渠道

fh = TimedRotatingFileHandler(filename=file_name,
encoding='utf8',
when='S',
interval=1,
backupCount=6)

参数:

  • interval:设置时间间隔
  • when:设置间隔单位(默认H)
    • S-Seconds(秒)
    • M-Minutes(分钟)
    • H-Hours(小时)
    • D-Day(天)
  • backupCount:轮转的文件数量

Python3-logging日志模块的更多相关文章

  1. 约束、自定义异常、hashlib模块、logging日志模块

    一.约束(重要***) 1.首先我们来说一下java和c#中的一些知识,学过java的人应该知道,java中除了有类和对象之外,还有接口类型,java规定,接口中不允许在方法内部写代码,只能约束继承它 ...

  2. 包,logging日志模块,copy深浅拷贝

    一 包 package 包就是一个包含了 __init__.py文件的文件夹 包是模块的一种表现形式,包即模块 首次导入包: 先创建一个执行文件的名称空间 1.创建包下面的__init__.py文件的 ...

  3. logging 日志模块学习

    logging 日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪,所以还是灰常重要滴,下面我就来从入门到放弃的系统学习一下日志既可以在屏幕上显示,又可以在文件中体现. ...

  4. logging日志模块

    为什么要做日志: 审计跟踪:但错误发生时,你需要清除知道该如何处理,通过对日志跟踪,你可以获取该错误发生的具体环境,你需要确切知道什么是什么引起该错误,什么对该错误不会造成影响. 跟踪应用的警告和错误 ...

  5. python 自动化之路 logging日志模块

    logging 日志模块 http://python.usyiyi.cn/python_278/library/logging.html 中文官方http://blog.csdn.net/zyz511 ...

  6. day31 logging 日志模块

    # logging 日志模块 ****** # 记录用户行为或者代码执行过程 # print 来回注释比较麻烦的 # logging # 我能够“一键”控制 # 排错的时候需要打印很多细节来帮助我排错 ...

  7. logging日志模块的使用

    logging日志模块的使用 logging模块中有5个日志级别: debug 10 info 20 warning 30 error 40 critical 50 通常使用日志模块,是用字典进行配置 ...

  8. Python入门之logging日志模块以及多进程日志

    本篇文章主要对 python logging 的介绍加深理解.更主要是 讨论在多进程环境下如何使用logging 来输出日志, 如何安全地切分日志文件. 1. logging日志模块介绍 python ...

  9. Python 中 logging 日志模块在多进程环境下的使用

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...

  10. Python logging(日志)模块

    python日志模块 内容简介 1.日志相关概念 2.logging模块简介 3.logging模块函数使用 4.logging模块日志流处理流程 5.logging模块组件使用 6.logging配 ...

随机推荐

  1. 分布式远程调用SpringCloud-Feign的两种具体操作方式(精华)

    一 前言 几大RPC框架介绍 1.支持多语言的RPC框架,google的gRPC,Apache(facebook)的Thrift 2.只支持特定语言的RPC框架,例如新浪的Motan 3.支持服务治理 ...

  2. poj 2991 起重机

    地址 http://poj.org/problem?id=2991 题解 本来以为这是一个简单的线段树模板 不料始终不太明白线段树如何记录转动角度后的各个线段端的XY值 学习了网络上的一些博客题解 感 ...

  3. Spire.Cloud.Word 添加Word水印(文本水印、图片水印)

    概述 Spire.Cloud.Word提供了watermarksApi接口可用于添加水印,包括添加文本水印(SetTextWatermark).图片水印(SetImageWatermark),本文将对 ...

  4. Python实现简单框架及三大框架对比

    手撸web框架 简单的请求响应实现 要实现最简单的web框架,首先要对网络熟悉,首先HTTP协议是应用层的协议,只要我们给数据加上HTTP格式的响应报头,我们的数据就能基于socket进行实现了 im ...

  5. jenkins 如何让job对应一个节点

    1.配置job:如图,在label expression 里面填写[节点标签名]或者是[节点名称]. 2.配置节点: 3.构建:第一个红线,表明使用哪个节点进行构建.  第二个红线,表明工作目录.

  6. idea object is not a member of package

    可能的原因: 1. pom.xml 依赖的工程没有deploy, 所有需要本地install改工程 2. 工程以来的库没有加入到 pom.xml中 3. 以上都没有问题,则右键该工程 => ma ...

  7. 论文阅读 | Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

    简述 在文本语义相似度等句子对的回归任务上,BERT , RoBERTa 拿到sota. 但是,它要求两个句子都被输入到网络中,从而导致巨大开销:从10000个句子集合中找到最相似的sentence- ...

  8. Python网络爬虫入门实战(爬取最近7天的天气以及最高/最低气温)

    _ 前言 本文文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Bo_wen   最近两天学习了一下python,并自己写了一个 ...

  9. iOS开发 为何 大不如前?原因竟然是这个?

    前言: 近期,社会上对iOS开发行业的负面信息越来越多,并且还被一些黑骗机构的胡诌八扯越描越黑,现在iOS开发按照开发者与公司招聘的数量上来看,是显示的供大于求,但是从各公司的招人计划上来看,明显是供 ...

  10. CSS预处理器之less和sass

    CSS预处理器 1.        基于CSS的另一种语言 2.        通过工具编译成CSS 3.        添加了很多CSS不具备的特性 4.        能提升CSS文件的组织方式 ...