博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python--logging日志模块
阅读量:6516 次
发布时间:2019-06-24

本文共 3966 字,大约阅读时间需要 13 分钟。

用于便捷记录日志且线程安全的模块

 

单文件日志

basicConfig()模块函数

功能:创建日志文件和写日志模式【有参】

使用方法:模块名称.basicConfig(filename="日志文件名称",format="(日期时间),(权限用户),(写入等级),(产生日志文件名称),(日志内容)",datefmt="日期时间格式",level="日志等级")

格式如:logging.basicConfig(filename='log.log',format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',datefmt='%Y-%m-%d %H:%M:%S %p',level=logging.WARNING)

内置等级写入函数【有参写入的内容】

critical()模块函数,critical等级写入日志

fatal()模块函数,fatal等级写入日志
error()模块函数,error等级写入日志
warning()模块函数,warning等级写入日志
warn()模块函数,warn等级写入日志
info()模块函数,info等级写入日志
debug()模块函数,debug等级写入日志

等级对照表

CRITICAL = 50
FATAL = CRITICAL
ERROR = 40
WARNING = 30
WARN = WARNING
INFO = 20
DEBUG = 10

#!/usr/bin/env python# -*- coding:utf8 -*-import logginglogging.basicConfig(filename='log.log',                    format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',#(日期时间),(权限用户),(写入等级),(产生日志文件名称),(日志内容)                    datefmt='%Y-%m-%d %H:%M:%S %p',#日期时间格式                    level=logging.WARNING)#日志等级,日志等级要求大写# 等级对照表# CRITICAL = 50# FATAL = CRITICAL# ERROR = 40# WARNING = 30# WARN = WARNING# INFO = 20# DEBUG = 10#注意:写入等级大于日志等级,才写入日志数据# 写入等级,写入日志logging.critical('sss')#写入日志,写入等级要求小写logging.fatal("333")#写入日志,写入等级要求小写logging.error("2222")#写入日志,写入等级要求小写logging.warning("5555")#写入日志,写入等级要求小写logging.warn("999")#写入日志,写入等级要求小写logging.info("598")#写入日志,写入等级要求小写logging.debug("5646")#写入日志,写入等级要求小写#log日志写入数据# 2016-09-06 15:10:38 PM - root - CRITICAL -index:  sss# 2016-09-06 15:10:38 PM - root - CRITICAL -index:  333# 2016-09-06 15:10:38 PM - root - ERROR -index:  2222# 2016-09-06 15:10:38 PM - root - WARNING -index:  5555# 2016-09-06 15:10:38 PM - root - WARNING -index:  999#以上可以看出,写入等级大于日志等级,才写入日志数据

 

log()模块函数

功能:自定义写入等级,写入日志【有参】

使用方法:模块名称.log(写入等级数,"写入内容")

格式如:logging.log(40,'log')

#!/usr/bin/env python# -*- coding:utf8 -*-import logginglogging.basicConfig(filename='log.log',                    format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',#(日期时间),(权限用户),(写入等级),(产生日志文件名称),(日志内容)                    datefmt='%Y-%m-%d %H:%M:%S %p',#日期时间格式                    level=logging.WARNING)#日志等级,日志等级要求大写# 等级对照表# CRITICAL = 50# FATAL = CRITICAL# ERROR = 40# WARNING = 30# WARN = WARNING# INFO = 20# DEBUG = 10#注意:写入等级大于日志等级,才写入日志数据# 自定义写入等级,写入日志logging.log(40,'log')

 

多文件日志(推荐)

FileHandler()模块函数

功能:打开或创建日志文件【有参】

使用方法:模块名称.FileHandler("文件路径名称","打开模式",encoding='字符编码')

格式如:logging.FileHandler('l1_1.log', 'a', encoding='utf-8')

Formatter()模块函数

功能:创建日志写入格式【有参】

使用方法:模块名称.Formatter(fmt="%(日期和时间)s - %(日志等级名称)s - %(写入等级名称)s -%(产生日志程序名称)s:  %(日志内容)s")

格式如:logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")

setFormatter()模块函数

功能:将日志写入格式应用到,打开文件【有参】

使用方法:打开日志文件变量.setFormatter(创建日志写入格式变量)

格式如:file_1_1.setFormatter(fmt)

Logger()模块函数

功能:创建日志等级,注意这个日志等级可以参照等级对照表来设置,要求大写【有参】

使用方法:模块名称.Logger("自定义日志等级名称",level=日志等级参数)

格式如:logging.Logger('s1', level=logging.ERROR)

addHandler()模块函数

功能:将日志等级追加到打开的文件【有参】

使用方法:创建日志等级变量.addHandler(打开日志文件变量)

格式如:logger1.addHandler(file_1_1)

close()模块函数

功能:关闭打开的日志文件【无参】

使用方法:打开日志文件变量.close()

格式如:file_1_1.close()

#!/usr/bin/env python# -*- coding:utf8 -*-import logging #导入模块# 定义文件1file_1_1 = logging.FileHandler('l1_1.log', 'a', encoding='utf-8')#以a模式打开或创建日志文件fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")#创建日志写入格式file_1_1.setFormatter(fmt)#将日志写入格式应用到,打开文件# 定义文件2file_1_2 = logging.FileHandler('l1_2.log', 'a', encoding='utf-8')#以a模式打开或创建日志文件fmt = logging.Formatter(fmt="%(message)s")#创建日志写入格式file_1_2.setFormatter(fmt)#将日志写入格式应用到,打开文件# 定义日志logger1 = logging.Logger('s1', level=logging.ERROR)#创建日志等级,注意这个日志等级可以参照等级对照表来设置,要求大写logger1.addHandler(file_1_1)#将日志等级追加到打开的文件logger1.addHandler(file_1_2)#将日志等级追加到打开的文件# 写日志logger1.critical('1111') #写入等级函数写入日志,注意这个写入等级函数参照等级对照表来设置,要求小写,也可以用log()模块函数来自定义等级,参照log()模块函数file_1_1.close()#关闭打开的日志文件file_1_2.close()#关闭打开的日志文件#这样就将一个日志数据同时写入两个日志文件,注意:要将日志数据写入几个日志文件,就按照上面操作打开几个日志文件

转载于:https://www.cnblogs.com/zjltt/p/6958186.html

你可能感兴趣的文章
caffe blob理解
查看>>
特殊字符校验
查看>>
GCC 中 -L、-rpath和-rpath-link的区别
查看>>
RedHat7下PostGIS源码安装
查看>>
亚马逊AWS学习——VPC里面几个概念的关系
查看>>
context.getSystemService的简单说明
查看>>
php中的正则函数:正则匹配,正则替换,正则分割 所有的操作都不会影响原来的字符串....
查看>>
三个小时学会wordpress模板制作
查看>>
【网络协议】TCP协议简单介绍
查看>>
利用SMB jcifs实现对windows中的共享文件夹的操作
查看>>
Spring(十七):Spring AOP(一):简介
查看>>
html5常用属性text-shadow、vertical-align、background如何使用
查看>>
微软正式宣布Azure MongoDB Atlas免费方案
查看>>
Jessica Kerr:高绩效团队简史
查看>>
开发者需要知道的有关软件架构的五件事
查看>>
GitLab 9提供了子群组、部署面板和集成监控
查看>>
继爆款超级账本后,IBM再次推出新产品
查看>>
贝壳金控赵文乐:基于 Spring Cloud 的服务治理实践
查看>>
Pyspider框架 —— Python爬虫实战之爬取 V2EX 网站帖子
查看>>
区域生长算法 C++实现
查看>>