Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto Apto para principiantes
#786 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 4 días

@hippi345 ya está trabajando en esto.

Desde el 27/10/2026.

  • #791 de @hippi345 — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
77/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python, redis
Área
backend

Línea de trabajo

Empieza con redisvl/utils/log.py e inspecciona cómo get_logger añade manejadores. Reproduce el comportamiento con el script proporcionado, tanto antes como después de logging.basicConfig(), y luego revisa las pruebas relacionadas con la advertencia por un campo vectorial sin analizar. La tarea está terminada cuando las advertencias de RedisVL llegan a stderr a través de lastResort sin configuración de logging, mientras que el logging configurado sigue funcionando.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Python
Estrellas
432
Forks
111
Merge medio
5 d 22 h
PR fusionados (30 d)
13

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de redis/redis-vl-python

Todos los issues de redis/redis-vl-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.