python的日志配置文件,info级别的日志我只需要打印自己项目的,工具库中的日志不打印,怎么做

在 Python 的日志配置中,可以通过设置不同 logger 的级别来控制日志的输出。你可以为你的项目设置一个特定的 logger,并为其设置 INFO 级别,同时将其他 logger 的级别设置为 WARNING 或更高,这样工具库的 DEBUG 或 INFO 级别的日志就不会被输出。

下面是一个简单的例子,演示如何配置日志,只输出你的项目的 INFO 级别日志:

import logging

# 配置根日志
logging.basicConfig(level=logging.DEBUG)

# 获取项目的 logger
logger = logging.getLogger("your_project_logger")
logger.setLevel(logging.INFO)  # 设置项目的 logger 为 INFO 级别

# 配置控制台处理程序,用于输出日志
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)  # 控制台输出 INFO 级别及以上的日志

# 配置日志格式
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
console_handler.setFormatter(formatter)

# 将处理程序添加到项目的 logger
logger.addHandler(console_handler)

# 以下是工具库的代码,你不需要修改它
# ...
# ...

# 记录 INFO 级别的日志
logger.info("This is an INFO log from your project.")

在上述代码中,你可以根据自己项目的实际情况设置 logger 的名字(这里是 "your_project_logger")。将你的项目的 logger 设置为 INFO 级别,同时设置控制台处理程序的级别为 INFO,这样只有 INFO 级别及以上的日志会被输出到控制台。

请替换 "your_project_logger" 为你实际项目的 logger 名字。如果你的工具库使用了不同的 logger,你可以设置相应的 logger 名字并调整级别。

LOGGING_CONFIG = { 'version': 1, 'formatters': { 'detailed': { 'class': 'logging.Formatter', 'format': '%(asctime)s [%(levelname)s] %(name)s.%(funcName)s:%(lineno)d - %(message)s', }, }, 'handlers': { 'console': { 'class': 'logging.StreamHandler', 'level': 'INFO', 'formatter': 'detailed', }, }, 'root': { 'handlers': ['console'], 'level': 'INFO', }, } 过滤所有工具库的日志

如果你想过滤掉所有工具库的日志,只输出自己项目的日志,可以通过以下步骤进行设置:

  1. 为你的项目创建一个专用的 logger。 在你的代码中,使用专门的 logger,不要使用根 logger。

  2. 配置 logger 的处理程序和级别。 在你的项目中,为专用 logger 添加控制台处理程序,并设置适当的日志级别。

下面是一个示例配置:

import logging
from logging.config import dictConfig

# 配置日志
LOGGING_CONFIG = {
    'version': 1,
    'formatters': {
        'detailed': {
            'class': 'logging.Formatter',
            'format': '%(asctime)s [%(levelname)s] %(name)s.%(funcName)s:%(lineno)d - %(message)s',
        },
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
            'level': 'INFO',
            'formatter': 'detailed',
        },
    },
    'loggers': {
        'your_project_logger': {  # 替换为你的项目名
            'handlers': ['console'],
            'level': 'INFO',
        },
    },
}

dictConfig(LOGGING_CONFIG)

# 获取专用 logger
logger = logging.getLogger('your_project_logger')  # 替换为你的项目名

# 以下是你的项目代码
# ...
# ...

# 以下是工具库的代码,不需要修改
# ...
# ...

# 记录 INFO 级别的日志
logger.info("This is an INFO log from your project.")

在这个例子中,你需要将 'your_project_logger' 替换为你的项目的 logger 名称。然后,通过 dictConfig 函数应用日志配置。这样,只有你的项目的日志会被输出到控制台,而其他的工具库的日志不会显示。

确保你的项目中的其他地方也使用 'your_project_logger',以便它们都记录到同一个 logger 中。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值