Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

RedisVL warnings are never shown when the application has not configured logging

Đang mở Phù hợp với người mới
#786 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 4 ngày

@hippi345 đang làm issue này rồi.

Từ ngày 27/10/2026.

  • #791 của @hippi345 — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
77/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python, redis
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu với redisvl/utils/log.py và kiểm tra cách get_logger gắn các handler. Tái hiện hành vi bằng script được cung cấp, cả trước và sau logging.basicConfig(), sau đó kiểm tra các bài kiểm thử liên quan đến cảnh báo về trường vector chưa được phân tích. Công việc hoàn tất khi các cảnh báo của RedisVL được đưa ra stderr qua lastResort mà không cần cấu hình logging, trong khi logging đã cấu hình vẫn hoạt động.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

Description

RedisVL's warnings never reach an application that has not configured logging, including the ones that signal lost data.

get_logger attaches a logging.NullHandler to every RedisVL logger (redisvl/utils/log.py). Since Python 3.2, a WARNING or higher record with no handler anywhere in the logger hierarchy goes to logging.lastResort, which prints it to stderr. A NullHandler counts as a handler, so it opts every RedisVL logger out of that fallback and the record is dropped.

That affects every get_logger call site in the library (22 on main). The most consequential is the warning #742 added for a vector field that from_existing cannot parse: the recovered schema is missing that field, and recreating the index from it drops the field. In the issue's own setting, a plain script with no logging configuration, the warning is never shown. The test for it passes only because pytest's caplog installs its own handler.

Reproduction

import logging
from redisvl.utils.log import get_logger

get_logger("redisvl.demo").warning("from redisvl logger")
logging.getLogger("plain.demo").warning("from plain logger")

On main, with Python 3.13, only from plain logger is printed. After logging.basicConfig(), the RedisVL warning appears.

Expected behaviour

With no logging configuration, RedisVL warnings and errors reach stderr through lastResort, as a standard-library logger's do. An application that configures logging is unaffected either way.

Proposed fix

Stop attaching the NullHandler in get_logger. It was only needed to silence the "No handlers could be found" message on Python 2 and early Python 3. It does not configure the root logger, so this keeps the behaviour that #443 and #445 asked for.

Ngôn ngữ chính
Python
Star
432
Fork
116
Merge trung bình
5 ngày 22 giờ
Pull request đã merge (30 ngày)
13

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của redis/redis-vl-python

Tất cả issue của redis/redis-vl-python

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.