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 base64 decode incorrect padding错误解决方法
Jan 08 Python
python实现12306抢票及自动邮件发送提醒付款功能
Mar 08 Python
python print 按逗号或空格分隔的方法
May 02 Python
python模块smtplib学习
May 22 Python
python 读取文件并替换字段的实例
Jul 12 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
pygame游戏之旅 游戏中添加显示文字
Nov 20 Python
解决python3 pika之连接断开的问题
Dec 18 Python
Python根据当前日期取去年同星期日期
Apr 14 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
通过cmd进入python的步骤
Jun 16 Python
keras 模型参数,模型保存,中间结果输出操作
Jul 06 Python
python 爬取京东指定商品评论并进行情感分析
python b站视频下载的五种版本
May 27 #Python
教你怎么用python selenium实现自动化测试
Python Django框架介绍之模板标签及模板的继承
May 27 #Python
python 算法题——快乐数的多种解法
May 27 #Python
用Python监控你的朋友都在浏览哪些网站?
Python图片处理之图片裁剪教程
You might like
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
Python正则捕获操作示例
2017/08/19 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
Ruby如何进行文件操作
2014/07/17 面试题
电大毕业生自我鉴定
2013/11/10 职场文书
迎新晚会邀请函
2014/02/01 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
借款协议书范本
2014/04/22 职场文书
就职演讲稿范文
2014/05/19 职场文书
终止劳动合同协议书
2014/10/05 职场文书
护理实习生带教计划
2015/01/16 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
硕士论文致谢范文
2015/05/14 职场文书
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers