首页 > 编程语言 >python logger模块

python logger模块

时间:2022-09-02 08:55:28浏览次数:46  
标签:logging name python handler 模块 logger 日志 log

1、logging 模块简介

logging模块事python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等。

Logger从来不直接实例化,经常通过logging模块级方法(Module-Level Function) logging.getLogger(name)来获得,其中如果name不给定就用root,一般使用__name__。对同一个名字的多个调用logging.getLogger()方法会返回同一个logger对象。这种命名方式里面,后面的loggers是前面logger的子logger,自动继承父loggers的log信息。

2、logging模块使用

复制代码
import logging
logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')  #基本设置,可以替代注释里的配置项
logger = logging.getLogger(__name__)   #创建logger对象
#logger.setLevel(level=logging.INFO)
handler = logging.FileHandler("d:/log.txt")   #创建handler对象,保存文件
#handler.setLevel(logging.INFO)
#log_format = '[%(levelname)s TIME:%(asctime)s] %(message)s'
#formatter = logging.Formatter(log_format)
#handler.setFormatter(formatter)
logger.addHandler(handler)  #logger添加handler

logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")
复制代码

 

 

Formatters定义了Logger记录的输出格式。      定义了最终log信息的内容格式,应用可以直接实例化Foamatter类。信息格式字符串用%(<dictionary key>)s风格的字符串做替换。  
属性名称     格式                                          说明  
name %(name)s 日志的名称
asctime %(asctime)s 可读时间,默认格式‘2003-07-08 16:49:45,896’,逗号之后是毫秒
filename %(filename)s 文件名,pathname的一部分
pathname %(pathname)s 文件的全路径名称
funcName %(funcName)s 调用日志多对应的方法名
levelname %(levelname)s 日志的等级
levelno %(levelno)s 数字化的日志等级
lineno %(lineno)d 被记录日志在源码中的行数
module %(module)s 模块名
msecs %(msecs)d 时间中的毫秒部分
process %(process)d 进程的ID
processName %(processName)s 进程的名称
thread %(thread)d 线程的ID
threadName %(threadName)s 线程的名称
relativeCreated %(relativeCreated)d 日志被创建的相对时间,以毫秒为单位
 

标签:logging,name,python,handler,模块,logger,日志,log
From: https://www.cnblogs.com/chentiao/p/16648557.html

相关文章

  • 04 | JAVA模块
    模块jar只是用于存放class的容器,它并不关心class之间的依赖。从Java9开始引入的模块,主要是为了解决“依赖”这个问题。如果a.jar必须依赖另一个b.jar才能运行,那我们应该......
  • 使用 CerealBox 将 AWS DynamoDB JSON 序列化为 Python dict
    使用CerealBox将AWSDynamoDBJSON序列化为Pythondict在这里,我们讨论了一个快速演练和参考代码,用于为您的下一个AWS应用程序简化DynamoDBJSON序列化过程。绒......
  • 使用 Python 进行 A/B 测试应用程序
    使用Python进行A/B测试应用程序https://www.reliablesoft.net/ab-testing-principles-optimize-your-marketing-and-skyrocket-conversions/什么是A/B测试?A/B......
  • 使用 Python 保存和显示计算历史
    使用Python保存和显示计算历史仅使用Python显示计算历史的一种非常流行且简单的方法编写一个简单的算术计算器很容易。但是编写一个可以保存和显示计算器历史的计算......
  • python读取PDF文件中的数据
    #-*-coding:utf-8-*-#模块的安装与导入由于pdfplumber和PyPDF2都属于第三方开源模块因此需要我们额外安装#安装pipinstallpdfplumber#pipinstallPyPDF2......
  • python学习Day58
    Day58今日内容概要昨日作业讲解django请求生命周期流程图路由层系统路由匹配(不同版本的django有一点的区别)反向解析无名有名反向解析路由分发名称空间今......
  • 学习python-Day52
    今日学习内容作业讲解用户管理系统(单表)配置文件settings中关于template的文件路径修改和添加。将新建的应用注册接口前缀模型类在models文件中创建各个类对......
  • 用Python做一个中秋节嫦娥投食小游戏《千里婵娟》
    山河远阔,烟火人间,又一年,千里婵娟~今天给大家带来的是给玉兔投喂月饼的小游戏。八月十五中秋夜晚,让我们对着月亮许愿:希望我们在意和在意我们的人,诸邪避退、百事无忌、平......
  • ES6模块化和CommonJS模块化
    我之前学习模块化的时候,曾在node中使用过,它采用的时CommonJS模块化标准,源自于JavaScript社区自发产生。CommonJS使用方法为:导入:require('模块名')模块对外共享成员使用m......
  • Python获取昨天,今天,明天,本周,上周,本月,上月,本季,本年,去年时间
    importdatetimefromdatetimeimporttimedeltanow=datetime.datetime.now()#今天today=now#昨天yesterday=now-timedelta(days=1)#明天tomorrow......