python怎么样实现自定义日志?
Admin 2021-08-20 群英技术资讯 1274 次浏览
这篇文章给大家分享的是python实现自定义日志的内容。小编觉得挺实用的,而且实现步骤和过程也不难,因此分享给大家做个参考,接下来一起跟随小编看看吧。
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 自定义日志的相关内容,大家可以关注其他文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
python的is和in有啥不同?很多新手学习python,对于is和in的区别不是很清楚,对此,下面小编就给大家简单的介绍一下python的is和in的区别以及用法,感兴趣的朋友就继续往下看吧。
正则表达式是用来匹配与查找字符串的,从网上爬取数据自然或多或少会用到正则表达式,python的正则表达式要先引入re模块,这篇文章主要给大家介绍了关于Python正则表达式re模块的相关资料,需要的朋友可以参考下
众所周知Django较为适合原生开发,即通过该框架搭建一个全新的项目,通过在修改models.py来创建新的数据库表,下面这篇文章主要给大家介绍了关于django连接Mysql中已有数据库的相关资料,需要的朋友可以参考下
yield 简单说来就是一个生成器,生成器是这样一个函数,它记住上一次返回时在函数体中的位置。对生成器函数的第二次(或第 n 次)调用跳
这篇文章主要给大家介绍dataframe数据选择的内容,有时候我们需要对数据进行筛选,选择我们想要的数据,下面给给大家分享使用dataframe数据选择的方法,小编觉得是比较实用的,感兴趣的朋友就往下看吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008