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抓取某汽车网数据解析html存入excel示例
Dec 04 Python
python求素数示例分享
Feb 16 Python
python中使用urllib2伪造HTTP报头的2个方法
Jul 07 Python
Python随机数random模块使用指南
Sep 09 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
Aug 07 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 Python
tensorflow2.0保存和恢复模型3种方法
Feb 03 Python
python读取与处理netcdf数据方式
Feb 14 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
Python何绘制带有背景色块的折线图
Apr 23 Python
python 爬取京东指定商品评论并进行情感分析
python b站视频下载的五种版本
May 27 #Python
教你怎么用python selenium实现自动化测试
Python Django框架介绍之模板标签及模板的继承
May 27 #Python
python 算法题——快乐数的多种解法
May 27 #Python
用Python监控你的朋友都在浏览哪些网站?
Python图片处理之图片裁剪教程
You might like
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
php基础知识:类与对象(5) static
2006/12/13 PHP
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
ECMAScript 创建自己的js类库
2012/11/22 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
Python实现约瑟夫环问题的方法
2016/05/03 Python
儿童python练习实例
2018/05/27 Python
详解flask入门模板引擎
2018/07/18 Python
python使用rpc框架gRPC的方法
2018/08/24 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
大队委竞选演讲稿
2014/04/28 职场文书
毕业证代领委托书
2014/09/26 职场文书
师德师风自查总结
2014/10/14 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server