python实现自定义日志的具体方法


Posted in Python onMay 28, 2021

1、导入logging模块:

import logging

2、创建日志收集器:

logger = logging.getLogger(“日志收集器的name”)

3、设置日志收集器的日志级别:

logger.setLevel(logging.INFO) #设置收集器的级别为INFO。

4、给日志收集器创建输出渠道,根据第一部分的内容知:日志输出渠道包含控制台输出和文件输出。

5、设置日志输出的内容格式。

# 设置日志的输出格式
 
fmt = "%(asctime)s %(name)s %(levelname)s %(filename)s-%(lineno)d:%(message)s"
 
formatter = logging.Formatter(fmt)

6、将设置的日志格式绑定到创建的输出渠道中,即将日志格式与输出渠道关联起来。

7、将设置好的输出渠道,添加到日志收集器。

实例扩展:

import os
import time
import logging

#返回一个logger实例,如果没有指定name,返回root logger。
# 只要name相同,返回的logger实例都是同一个而且只有一个,即name和logger实例是一一对应的。
# 这意味着,无需把logger实例在各个模块中传递。只要知道name,就能得到同一个logger实例。
logger = logging.getLogger('mylogger')
# 设置总日志级别, 也可以给不同的handler设置不同的日志级别
#设置logger的level, level有以下几个级别:
# 级别高低顺序:NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL
# 如果把looger的级别设置为INFO, 那么小于INFO级别的日志都不输出, 大于等于INFO级别的日志都输出 
logger.setLevel(logging.DEBUG)

# 控制台日志和日志文件使用同一个formatter,formatter用于描述日志的格式
formatter = logging.Formatter(
	'%(asctime)s - %(filename)s[line:%(lineno)d] - <%(threadName)s %(thread)d>' +
	'- <Process %(process)d> - %(levelname)s: %(message)s'
)
# asctime:日志产生的时间;filename:产生日志的脚本文件名;lineno:该脚本文件哪一行代码产生了日志
# threadName: 当前线程名;thread: 当前进程名;Process进程同thread线程
# levelname: logger的级别;meesage: 具体的日志信息


# 创建Handler, 输出日志到控制台和文件
# 日志文件FileHandler
basedir = os.path.abspath(".") #返回脚本所在的绝对路径
log_dir = os.path.join(basedir, 'logs')  # 日志文件所在目录,即‘脚本路径/logs'
if not os.path.isdir(log_dir):
	os.mkdir(log_dir)
filename = time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time())) + '.log'  # 日志文件名,以当前时间命名
file_handler = logging.FileHandler(os.path.join(log_dir, filename))  # 创建日志文件handler
file_handler.setFormatter(formatter)  # 设置Formatter
file_handler.setLevel(logging.INFO)  # 单独设置日志文件的日志级别

# 控制台日志StreamHandler
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(formatter)
# stream_handler.setLevel(logging.INFO)  # 单独设置控制台日志的日志级别,注释掉则使用总日志级别

# 将handler添加到logger中

logger.addHandler(file_handler)
logger.addHandler(stream_handler)

到此这篇关于python实现自定义日志的具体方法的文章就介绍到这了,更多相关python自定义日志如何实现内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中使用logging模块代替print(logging简明指南)
Jul 09 Python
Python操作MongoDB数据库PyMongo库使用方法
Apr 27 Python
Python 将RGB图像转换为Pytho灰度图像的实例
Nov 14 Python
Python找出最小的K个数实例代码
Jan 04 Python
python解析html提取数据,并生成word文档实例解析
Jan 22 Python
python互斥锁、加锁、同步机制、异步通信知识总结
Feb 11 Python
python3.5绘制随机漫步图
Aug 27 Python
浅谈图像处理中掩膜(mask)的意义
Feb 19 Python
Python yield的用法实例分析
Mar 06 Python
Python3读取和写入excel表格数据的示例代码
Jun 09 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
Sep 25 Python
用Python仅20行代码编写一个简单的端口扫描器
Apr 08 Python
python 爬取京东指定商品评论并进行情感分析
python b站视频下载的五种版本
May 27 #Python
教你怎么用python selenium实现自动化测试
Python Django框架介绍之模板标签及模板的继承
May 27 #Python
python 算法题——快乐数的多种解法
May 27 #Python
用Python监控你的朋友都在浏览哪些网站?
Python图片处理之图片裁剪教程
You might like
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
基于PHP文件操作的详解
2013/06/05 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
客户端js性能优化小技巧整理
2013/11/05 Javascript
动态标签 悬停效果 延迟加载示例代码
2013/11/21 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
使用async-validator编写Form组件的方法
2018/01/10 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
中专毕业生自我鉴定
2013/11/21 职场文书
技校毕业生的自我评价
2013/12/27 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
幼儿园教研活动总结
2014/04/30 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
Python字符串的转义字符
2022/04/07 Python
MySQL创建管理子分区
2022/04/13 MySQL
MySQL中的全表扫描和索引树扫描
2022/05/15 MySQL