Python3-logging日志模块
日志模块
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日志模块的更多相关文章
- 约束、自定义异常、hashlib模块、logging日志模块
一.约束(重要***) 1.首先我们来说一下java和c#中的一些知识,学过java的人应该知道,java中除了有类和对象之外,还有接口类型,java规定,接口中不允许在方法内部写代码,只能约束继承它 ...
- 包,logging日志模块,copy深浅拷贝
一 包 package 包就是一个包含了 __init__.py文件的文件夹 包是模块的一种表现形式,包即模块 首次导入包: 先创建一个执行文件的名称空间 1.创建包下面的__init__.py文件的 ...
- logging 日志模块学习
logging 日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪,所以还是灰常重要滴,下面我就来从入门到放弃的系统学习一下日志既可以在屏幕上显示,又可以在文件中体现. ...
- logging日志模块
为什么要做日志: 审计跟踪:但错误发生时,你需要清除知道该如何处理,通过对日志跟踪,你可以获取该错误发生的具体环境,你需要确切知道什么是什么引起该错误,什么对该错误不会造成影响. 跟踪应用的警告和错误 ...
- python 自动化之路 logging日志模块
logging 日志模块 http://python.usyiyi.cn/python_278/library/logging.html 中文官方http://blog.csdn.net/zyz511 ...
- day31 logging 日志模块
# logging 日志模块 ****** # 记录用户行为或者代码执行过程 # print 来回注释比较麻烦的 # logging # 我能够“一键”控制 # 排错的时候需要打印很多细节来帮助我排错 ...
- logging日志模块的使用
logging日志模块的使用 logging模块中有5个日志级别: debug 10 info 20 warning 30 error 40 critical 50 通常使用日志模块,是用字典进行配置 ...
- Python入门之logging日志模块以及多进程日志
本篇文章主要对 python logging 的介绍加深理解.更主要是 讨论在多进程环境下如何使用logging 来输出日志, 如何安全地切分日志文件. 1. logging日志模块介绍 python ...
- Python 中 logging 日志模块在多进程环境下的使用
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,Python 中 logging 日志模块在多进程环境下的使用 使用 Pytho ...
- Python logging(日志)模块
python日志模块 内容简介 1.日志相关概念 2.logging模块简介 3.logging模块函数使用 4.logging模块日志流处理流程 5.logging模块组件使用 6.logging配 ...
随机推荐
- python网络爬虫之入门[一]
目录 前言 一.探讨什么是python网络爬虫? 二.一个针对于网络传输的抓包工具fiddler 三.学习request模块来爬取第一个网页 * 扩展内容(爬取top250的网页) 后记 @(目录) ...
- MYSQL删除
1.使用360卸载,并强力删除相关东东 2.清理注册表: A.HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application ...
- 【数据结构】之散列链表(Java语言描述)
散列链表,在JDK中的API实现是 HashMap 类. 为什么HashMap被称为“散列链表”?这与HashMap的内部存储结构有关.下面将根据源码进行分析. 首先要说的是,HashMap中维护着的 ...
- 远程连接mysql出现1045错误的解决办法
第一步:停止MySQL服务 第二步:在你MySQL的安装目录下找到my.ini,文件,打开文件查找到 [mysqld] ,在其下方添加上一行 skip-grant-tables,然后保存. 第三步:启 ...
- redis - redis数据结构与API
通用命令 keys:遍历所有的key[keys一般不再生产环境使用],时间复杂度O(n) keys * keys he* keys he[h-l]* keys ph? dbsize:计算key的总数, ...
- IDEA启动tomcat报java.net.SocketExceptionsocket closed
IDEA启动tomcat报java.net.SocketException:socket closed.如图所示 解决方法:打开任务管理器,检查有没有java.exe进程. 关闭了重新启动就好了 ...
- 区块链学习笔记:DAY05 如何使用公有云区块链服务
这是最后一节课了,主要讲华为云在云区块链提供的服务,如何基于华为云BCS来构建应用 先来个简单的比喻: 1.有关BaaS的范围定义 包含物理主机.虚拟主机.容器服务.区块链.智能合约和服务 2.华为云 ...
- 为什么说 Java 中只有值传递?
对于初学者来说,要想把这个问题回答正确,是比较难的.在第二天整理答案的时候,我发现我竟然无法通过简单的语言把这个事情描述的很容易理解,遗憾的是,我也没有在网上找到哪篇文章可以把这个事情讲解的通俗易懂. ...
- 微服务管理平台nacos虚拟ip负载均衡集群模式搭建
一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...
- react-native scrollview触摸滚动事件
目录 1.几个已知的滑动或者滑动开始结束的方法: 2.还有其他的一些事件如下 3.下面就这些方法的顺序做个简单的介绍: 4.android上的时间分为两种,一个是滑动一次,一个是连续滑动两次甚至多次, ...