文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python实现自定义日志的具体方法

2022-06-02 22:25

关注

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自定义日志如何实现内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯