python logging 模块详解

1.日志等级

日志等级(level)描述
DEBUG最详细的日志信息,典型应用场景是 问题诊断
INFO信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
WARNING当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
ERROR由于一个更严重的问题导致某些功能不能正常运行时记录的信息
CRITICAL当发生严重错误,导致应用程序不能继续运行时记录的信息

2.日志级别等级排序

        critical > error > warning > info > debug   

        # 这个指设置级别参数: logging.basicConfig(level=logging.DEBUG)

3.logging.basicConfig() 函数关键字参数:

关键字描述
filename创建一个 FileHandler,使用指定的文件名,而不是使用 StreamHandler。
filemode如果指明了文件名,指明打开文件的模式(如果没有指明 filemode,默认为 ‘a’)。
formathandler 使用指明的格式化字符串。
datefmthandler 使用指明的格式化字符串。
level指明根 logger 的级别。
stream使用指明的流来初始化 StreamHandler。该参数与 ‘filename’ 不兼容,如果两个都有,’stream’ 被忽略。

4.format 格式:

格式描述
%(levelno)s打印日志级别的数值
%(levelname)s打印日志级别名称
%(pathname)s打印当前执行程序的路径
%(filename)s打印当前执行程序名称
%(funcName)s打印日志的当前函数
%(lineno)d打印日志的当前行号
%(asctime)s打印日志的时间
%(thread)d打印线程 ID
%(threadName)s打印线程名称
%(process)d打印进程 ID
%(message)s打印日志信息

5.将日志信息记录到文件

import logging

# 日志信息记录到文件
logging.basicConfig(filename='example.log', level=logging.DEBUG)  # log文件会自己创建
logging.debug('This message should go to the log file')
logging.info('So should this')
logging.warning('And this, too')

6.更改显示消息格式

import logging
# 显示消息时间
logging.basicConfig(format='%(asctime)s %(message)s')
logging.warning('is when this event was logged.')

logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
logging.warning('我是你爸爸.')

主要参考:第32天:Python logging 模块详解 - 纯洁的微笑博客

7. logging.conf  配置文件使用详解

[loggers]
keys=root,fileLogger,rotatingFileLogger

[handlers]
keys=consoleHandler,fileHandler,rotatingFileHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler

[logger_fileLogger]
level=DEBUG
handlers=fileHandler
qualname=fileLogger
propagate=0

[logger_rotatingFileLogger]
level=DEBUG
handlers=consoleHandler,rotatingFileHandler
qualname=rotatingFileLogger
propagate=0

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=simpleFormatter
args=('logging.log', 'a')

[handler_rotatingFileHandler]
class=handlers.RotatingFileHandler
level=WARNING
formatter=simpleFormatter
args=("rotating_logging.log", "a", 1*1024*1024, 5)

[formatter_simpleFormatter]
#format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
format=%(asctime)s - %(module)s - %(thread)d - %(levelname)s : %(message)s
datefmt=%Y-%m-%d %H:%M:%S

import logging.config
logging.config.fileConfig('logging.conf')

# 输出日志到控制台,获取的是root对应的logger
console_logger = logging.getLogger()
console_logger.debug("我是你爹")
# 输出日志到单个文件
file_logger = logging.getLogger(name="fileLogger")

# rotatingFileLogger中额consoleHandler输出到控制台,rotatingHandler输出日志到文件
rotating_logger = logging.getLogger(name="rotatingFileLogger")
rotating_logger.debug("我是你yeye")


1.loggers : 配置logger信息。必须包含一个名字叫做root的logger,当使用无参函数logging.getLogger()时,默认返回root这个logger,其他自定义logger可以通过 logging.getLogger("fileLogger") 方式进行调用
2.handlers:定义声明handlers信息。常用的handlers包括 StreamHandler(仅将日志输出到kong控制台)、FileHandler(将日志信息输出保存到文件)、RotaRotatingFileHandler(将日志输出保存到文件中,并设置单个日志wenj文件的大小和日志文件个数)
3.formatter : 设置日志格式
4.logger_xxx : 对loggers中声明的logger进行逐个配置,且要一一对应
5.handler_xxx : 对handlers中声明的handler进行逐个配置,且要一一对应
6.formatter_xxx : 对声明的formatterjinx进行配置

https://docs.python.org/3.8/library/logging.config.html#logging-config-fileformat

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值