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 相关文章推荐
pycharm 使用心得(七)一些实用功能介绍
Jun 06 Python
Python中使用hashlib模块处理算法的教程
Apr 28 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
Jul 18 Python
django orm 通过related_name反向查询的方法
Dec 15 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
Python Web版语音合成实例详解
Jul 16 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
Feb 14 Python
用python发送微信消息
Dec 21 Python
python基于openpyxl生成excel文件
Dec 23 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
Apr 14 Python
python 爬取京东指定商品评论并进行情感分析
python b站视频下载的五种版本
May 27 #Python
教你怎么用python selenium实现自动化测试
Python Django框架介绍之模板标签及模板的继承
May 27 #Python
python 算法题——快乐数的多种解法
May 27 #Python
用Python监控你的朋友都在浏览哪些网站?
Python图片处理之图片裁剪教程
You might like
javascript,php获取函数参数对象的代码
2011/02/03 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
php变量与数组相互转换的方法(extract与compact)
2016/12/02 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
js的touch事件的实际引用
2014/10/13 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
vue.js移动数组位置,同时更新视图的方法
2018/03/08 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
Python递归函数定义与用法示例
2017/06/02 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
Python笔记之工厂模式
2019/11/20 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
程序集与命名空间有什么不同
2014/07/25 面试题
机关门卫制度
2014/02/01 职场文书
幼儿老师求职信
2014/06/30 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
元宵节晚会主持词
2015/07/01 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
anaconda python3.8安装后降级
2021/06/11 Python
Python编程源码报错解决方法总结经验分享
2021/10/05 Python
MySQL 字符集 character
2022/05/04 MySQL