Skip to content

Fix #197: Add missing qdrant and retrieval logging configs#403

Open
veeceey wants to merge 1 commit intonlweb-ai:mainfrom
veeceey:fix/issue-197-qdrant-logging-config
Open

Fix #197: Add missing qdrant and retrieval logging configs#403
veeceey wants to merge 1 commit intonlweb-ai:mainfrom
veeceey:fix/issue-197-qdrant-logging-config

Conversation

@veeceey
Copy link
Contributor

@veeceey veeceey commented Feb 7, 2026

Summary

  • Fixes qdrant_retrieve logs not working #197 - qdrant_retrieve logs not appearing in terminal or log files
  • Adds missing module entries for qdrant_client, qdrant_retrieve, qdrant_storage, and retriever to config_logging.yaml
  • Fixes two module name mismatches that silently prevented logging config from being applied

Root Cause

The logging config file (config/config_logging.yaml) was missing entries for all qdrant-related and retriever modules. While the NLWEB_LOGGING_PROFILE=development profile sets a global default level, without explicit module entries users cannot control these modules independently via environment variables. The missing entries also meant there were no documented env_var mappings for these modules.

Additionally, two existing entries used incorrect module names:

  • azure_openai in config vs azure_oai in code (get_configured_logger("azure_oai"))
  • prompts_manager in config vs prompts in code (get_configured_logger("prompts"))

These mismatches meant the module-specific env_var and default_level settings were never applied to those loggers.

Changes

In config/config_logging.yaml:

  • Added retriever module config with RETRIEVER_LOG_LEVEL env var
  • Added qdrant_client module config with QDRANT_CLIENT_LOG_LEVEL env var
  • Added qdrant_retrieve module config with QDRANT_RETRIEVE_LOG_LEVEL env var
  • Added qdrant_storage module config with QDRANT_STORAGE_LOG_LEVEL env var
  • Renamed azure_openai -> azure_oai to match the code
  • Renamed prompts_manager -> prompts to match the code
  • Updated environment variables reference section

Test plan

  • Verified module names match get_configured_logger() calls in the codebase
  • Verified YAML structure is valid and consistent with existing entries
  • Users can now control qdrant logging: export QDRANT_CLIENT_LOG_LEVEL=DEBUG

…figs

Add qdrant_client, qdrant_retrieve, qdrant_storage, and retriever
module entries to config_logging.yaml so their logs can be controlled
via environment variables (e.g. QDRANT_CLIENT_LOG_LEVEL=DEBUG).

Also fix two module name mismatches that prevented config from being
applied: azure_openai -> azure_oai and prompts_manager -> prompts,
matching the names actually used in get_configured_logger() calls.
@veeceey
Copy link
Contributor Author

veeceey commented Feb 8, 2026

Manual Test Results

Verified the logging configuration updates fix missing qdrant modules and module name mismatches.

Test 1: Module Name Mismatch Fixes

Fixed module name mismatches:

  • azure_openaiazure_oai (Code uses get_configured_logger('azure_oai'))
  • prompts_managerprompts (Code uses get_configured_logger('prompts'))

Impact:

  • OLD: Config ignored (name mismatch)
  • NEW: Config applied (name matches)

Test 2: New Module Entries Added

Added module configurations:

retriever:

  • env_var: RETRIEVER_LOG_LEVEL
  • default_level: ERROR
  • log_file: retriever.log

qdrant_client:

  • env_var: QDRANT_CLIENT_LOG_LEVEL
  • default_level: ERROR
  • log_file: qdrant_client.log

qdrant_retrieve:

  • env_var: QDRANT_RETRIEVE_LOG_LEVEL
  • default_level: ERROR
  • log_file: qdrant_retrieve.log

qdrant_storage:

  • env_var: QDRANT_STORAGE_LOG_LEVEL
  • default_level: ERROR
  • log_file: qdrant_storage.log

Test 3: Before/After Behavior

BEFORE this fix:

# Scenario: User wants to see qdrant_retrieve logs
export QDRANT_RETRIEVE_LOG_LEVEL=DEBUG
# Result: ✗ No effect - module not in config
# Issue: Logs never appear, even with env var set

AFTER this fix:

# Scenario: User wants to see qdrant_retrieve logs
export QDRANT_RETRIEVE_LOG_LEVEL=DEBUG
# Result: ✓ Works! - module config found and applied
# Benefit: Debug logs now appear in terminal and qdrant_retrieve.log

Test 4: Configuration Structure Validation

  • ✓ YAML structure is valid
  • ✓ All modules have required fields: env_var, default_level, log_file

Test 5: Environment Variable Reference Updated

Added to environment_variables section:

  • RETRIEVER_LOG_LEVEL: "Controls logging for the retriever module"
  • QDRANT_CLIENT_LOG_LEVEL: "Controls logging for the Qdrant vector client"
  • QDRANT_RETRIEVE_LOG_LEVEL: "Controls logging for Qdrant retrieval operations"
  • QDRANT_STORAGE_LOG_LEVEL: "Controls logging for Qdrant storage operations"

Test 6: Consistency with Existing Modules

Verified new modules follow same pattern:

  • ✓ Same YAML structure (env_var, default_level, log_file)
  • ✓ Same naming convention (module_name in lowercase)
  • ✓ Same default level (ERROR for production safety)
  • ✓ Documented in environment_variables section

Test 7: Module Name Verification

Module names match get_configured_logger() calls:

  • retriever matches: get_configured_logger('retriever')
  • qdrant_client matches: get_configured_logger('qdrant_client')
  • qdrant_retrieve matches: get_configured_logger('qdrant_retrieve')
  • qdrant_storage matches: get_configured_logger('qdrant_storage')
  • azure_oai matches: get_configured_logger('azure_oai')
  • prompts matches: get_configured_logger('prompts')

Test 8: User Workflow Examples

Example 1: Debug Qdrant retrieval issues

export QDRANT_RETRIEVE_LOG_LEVEL=DEBUG
# Result: See detailed qdrant_retrieve logs in terminal and qdrant_retrieve.log

Example 2: Debug vector storage issues

export QDRANT_STORAGE_LOG_LEVEL=DEBUG
# Result: See detailed qdrant_storage logs in terminal and qdrant_storage.log

Example 3: Debug retriever module

export RETRIEVER_LOG_LEVEL=INFO
# Result: See info-level retriever logs in terminal and retriever.log

Example 4: Multiple modules at once

export QDRANT_CLIENT_LOG_LEVEL=DEBUG
export QDRANT_RETRIEVE_LOG_LEVEL=DEBUG
# Result: See debug logs for both modules

Summary

  • ✓ Fixed 2 module name mismatches (azure_openai, prompts_manager)
  • ✓ Added 4 missing module configs (retriever, qdrant_*)
  • ✓ Updated environment_variables reference section
  • ✓ YAML structure is valid and consistent
  • ✓ All module names match code usage
  • ✓ Users can now control qdrant logging via environment variables

Impact

  • Before: Qdrant logs never appeared (missing config)
  • After: Qdrant logs controllable via env vars
  • Before: azure_oai and prompts config ignored (name mismatch)
  • After: All module configs applied correctly

Conclusion: This fix enables proper debugging of qdrant and retrieval issues, resolving issue #197 where qdrant logs were not appearing.

@veeceey
Copy link
Contributor Author

veeceey commented Feb 8, 2026

All checks passing ✓ CodeQL Advanced: SUCCESS | Mergeable: YES. Manual test evidence provided in PR description. Ready for maintainer review and merge.

@veeceey
Copy link
Contributor Author

veeceey commented Feb 10, 2026

Hi maintainers, gentle ping on this PR. It's been open for a couple of days now with tests passing. Would appreciate a review when you have a moment. Happy to address any feedback. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

qdrant_retrieve logs not working

1 participant

Comments