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重试装饰器示例
Feb 11 Python
python求斐波那契数列示例分享
Feb 14 Python
将Django框架和遗留的Web应用集成的方法
Jul 24 Python
Python中的集合类型知识讲解
Aug 19 Python
python实现多线程行情抓取工具的方法
Feb 28 Python
Sanic框架请求与响应实例分析
Jul 16 Python
python爬虫获取百度首页内容教学
Dec 23 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
Python any()函数的使用方法
Oct 28 Python
wxPython实现分隔窗口
Nov 19 Python
python之生成多层json结构的实现
Feb 27 Python
flask项目集成swagger的方法
Dec 09 Python
python 爬取京东指定商品评论并进行情感分析
python b站视频下载的五种版本
May 27 #Python
教你怎么用python selenium实现自动化测试
Python Django框架介绍之模板标签及模板的继承
May 27 #Python
python 算法题——快乐数的多种解法
May 27 #Python
用Python监控你的朋友都在浏览哪些网站?
Python图片处理之图片裁剪教程
You might like
php使用正则表达式进行字符串搜索的方法
2015/03/23 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
[原创]PHP字符串中插入子字符串方法总结
2016/05/06 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
python实现数组插入新元素的方法
2015/05/22 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
Python3数字求和的实例
2019/02/19 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
Python实现PS滤镜中的USM锐化效果
2020/12/04 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
人事助理岗位职责
2013/11/18 职场文书
企业宣传策划方案
2014/05/29 职场文书
党的群众路线剖析材料
2014/10/09 职场文书
房屋出售授权委托书
2014/10/12 职场文书
2014年教务处工作总结
2014/12/03 职场文书
英语导游词
2015/02/13 职场文书
遗失说明具结保证书
2015/02/26 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python