Summary
Replace the binary debug toggle (on/off) with a configurable log level selector supporting all standard Python log levels: DEBUG, INFO, WARNING, ERROR, CRITICAL.
Motivation
The current logging config is a boolean — config.general.debug toggles between INFO and DEBUG. Users have no way to set WARNING/ERROR/CRITICAL levels to reduce log noise in production, or to fine-tune verbosity.
Current State
config.general.debug (bool) — True = DEBUG, False = INFO
- CLI
--debug flag overrides the config value
- Logging supports standard and JSON formats (already configurable)
- Multiprocess logging already works via QueueHandler
Implementation
Config change (clean break)
- Remove
debug property from Config.General
- Add
log_level string property (values: DEBUG, INFO, WARNING, ERROR, CRITICAL)
- Default:
INFO
- The config parser already silently ignores unknown keys, so existing
debug = True lines in old config files won't crash on upgrade — they'll just be ignored, and log_level defaults to INFO
Python backend
- Update
Seedsync._create_logger() to use config.general.log_level instead of the debug boolean
- Update
--debug CLI flag to set log_level = DEBUG (backward compat for CLI users)
- Update multiprocess log level propagation
Angular UI
- Replace the "Enable Debug" checkbox in the Logging section with a "Log Level" dropdown
- Choices: DEBUG, INFO, WARNING, ERROR, CRITICAL
- Update
Config.General interface and DEFAULT_GENERAL
Config serialization
- Update
serialize_config.py and tests
Acceptance Criteria
Summary
Replace the binary
debugtoggle (on/off) with a configurable log level selector supporting all standard Python log levels: DEBUG, INFO, WARNING, ERROR, CRITICAL.Motivation
The current logging config is a boolean —
config.general.debugtoggles between INFO and DEBUG. Users have no way to set WARNING/ERROR/CRITICAL levels to reduce log noise in production, or to fine-tune verbosity.Current State
config.general.debug(bool) —True= DEBUG,False= INFO--debugflag overrides the config valueImplementation
Config change (clean break)
debugproperty fromConfig.Generallog_levelstring property (values:DEBUG,INFO,WARNING,ERROR,CRITICAL)INFOdebug = Truelines in old config files won't crash on upgrade — they'll just be ignored, andlog_leveldefaults toINFOPython backend
Seedsync._create_logger()to useconfig.general.log_levelinstead of the debug boolean--debugCLI flag to setlog_level = DEBUG(backward compat for CLI users)Angular UI
Config.Generalinterface andDEFAULT_GENERALConfig serialization
serialize_config.pyand testsAcceptance Criteria
debugbool removed from config, replaced withlog_levelstringINFO; old configs withdebugkey don't crash on startup--debugCLI flag still works (sets log_level to DEBUG)