# Pytest Logging Plugin Configuration Reference
# ==============================================
# Extracted from _pytest/logging.py


## INI Options
## -----------

log_level: str | None = None
log_format: str = "%(levelname)-8s %(name)s:%(filename)s:%(lineno)d %(message)s"
log_date_format: str = "%H:%M:%S"
log_auto_indent: str | None = None
log_cli: bool = False
log_cli_level: str | None = None
log_cli_format: str | None = None
log_cli_date_format: str | None = None
log_file: str | None = None
log_file_mode: str = "w"
log_file_level: str | None = None
log_file_format: str | None = None
log_file_date_format: str | None = None


## CLI Arguments (by dest)
## -----------------------

log_level: str | None = None
log_format: str = DEFAULT_LOG_FORMAT
log_date_format: str = DEFAULT_LOG_DATE_FORMAT
log_auto_indent: str | None = None
log_cli_level: str | None = None
log_cli_format: str | None = None
log_cli_date_format: str | None = None
log_file: str | None = None
log_file_mode: str = "w"
log_file_level: str | None = None
log_file_format: str | None = None
log_file_date_format: str | None = None
logger_disable: list[str] = []  # CLI only, no INI equivalent


## Resolution Logic
## ----------------

# get_option_ini(config, *names) - returns first non-empty value:
#   1. config.getoption(name)  # CLI arg
#   2. config.getini(name)     # INI option
#   3. (repeat for fallback names)

# Capture/Report handler:
formatter uses:
  - get_option_ini(config, "log_format")
  - get_option_ini(config, "log_date_format")
  - get_option_ini(config, "log_auto_indent")
level uses:
  - get_log_level_for_setting(config, "log_level")

# File handler:
level uses:
  - get_log_level_for_setting(config, "log_file_level", "log_level")
formatter uses:
  - get_option_ini(config, "log_file_format", "log_format")
  - get_option_ini(config, "log_file_date_format", "log_date_format")

# CLI/Live handler:
level uses:
  - get_log_level_for_setting(config, "log_cli_level", "log_level")
formatter uses:
  - get_option_ini(config, "log_cli_format", "log_format")
  - get_option_ini(config, "log_cli_date_format", "log_date_format")
  - get_option_ini(config, "log_auto_indent")


## Fallback Summary
## ----------------

log_cli_level       -> log_level
log_cli_format      -> log_format
log_cli_date_format -> log_date_format
log_file_level      -> log_level
log_file_format     -> log_format
log_file_date_format -> log_date_format


## Notes
## -----

- log_cli has no CLI argument (INI only)
- logger_disable has no INI equivalent (CLI only, repeatable)
- Setting --log-cli-level implicitly enables live logging
