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 模拟购物车的实例讲解
Sep 11 Python
python 匹配url中是否存在IP地址的方法
Jun 04 Python
Python设计模式之简单工厂模式实例详解
Jan 22 Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 Python
python二维键值数组生成转json的例子
Dec 06 Python
PyQt5实现简单的计算器
May 30 Python
Python如何输出整数
Jun 07 Python
Pycharm快捷键配置详细整理
Oct 13 Python
python绘制高斯曲线
Feb 19 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
Python 阶乘详解
Oct 05 Python
Python内置数据类型中的集合详解
Mar 18 Python
python 爬取京东指定商品评论并进行情感分析
python b站视频下载的五种版本
May 27 #Python
教你怎么用python selenium实现自动化测试
Python Django框架介绍之模板标签及模板的继承
May 27 #Python
python 算法题——快乐数的多种解法
May 27 #Python
用Python监控你的朋友都在浏览哪些网站?
Python图片处理之图片裁剪教程
You might like
星际争霸任务指南——人族
2020/03/04 星际争霸
基于PHP 面向对象之成员方法详解
2013/05/04 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
Google 静态地图API实现代码
2010/11/19 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
vue实现Input输入框模糊查询方法
2021/01/29 Javascript
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
python 字符串只保留汉字的方法
2018/11/16 Python
python selenium 弹出框处理的实现
2019/02/26 Python
python3 实现口罩抽签的功能
2020/03/11 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
精彩广告词大全
2014/03/19 职场文书
同居协议书范本
2014/04/23 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
电力工程合作意向书
2015/05/11 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL