oasislmf.utils.log_config¶
Classes¶
Configuration handler for OasisLMF CLI/console logging. |
Module Contents¶
- class oasislmf.utils.log_config.OasisLogConfig(config: Dict[str, Any] | None = None)[source]¶
Configuration handler for OasisLMF CLI/console logging.
Handles log level resolution, format management, and validation for CLI-based logging. Designed to work alongside existing file-based logging in log.py.
- Environment Variables:
OASISLMF_LOG_LEVEL: Override log level (e.g., ‘DEBUG’, ‘INFO’, ‘WARNING’, ‘ERROR’, ‘CRITICAL’)
- Example:
>>> # Basic usage with config file >>> config = OasisLogConfig({'logging': {'level': 'INFO', 'format': 'compact'}}) >>> formatter = config.create_formatter() >>> level = config.get_log_level()
>>> # CLI override example >>> level = config.get_log_level('DEBUG') # Override config file >>> available_formats = config.get_available_formats() >>> available_levels = config.get_available_levels()
- get_log_level(cli_level: str | None = None, is_verbose: bool = False) int [source]¶
Get effective log level from various sources.
Priority order: CLI args > env vars > config file > verbose flag > default
- Args:
cli_level: Log level from command line (e.g., ‘INFO’, ‘DEBUG’) is_verbose: Legacy verbose flag for backward compatibility
- Returns:
Numeric log level (e.g., 20 for INFO, 10 for DEBUG)
- Examples:
>>> config = OasisLogConfig() >>> config.get_log_level('DEBUG') 10 >>> config.get_log_level(is_verbose=True) 10
- get_ods_tools_level(main_level: int) int [source]¶
Get ods_tools logger level based on main logger level.
- Args:
main_level: Main oasislmf logger level to use as reference
- Returns:
Numeric log level for ods_tools logger
- get_format_string(format_name: str | None = None) str [source]¶
Get log format string.
- Args:
format_name: Format template name from CLI or None for config/default
- Returns:
Format string for logging.Formatter
- get_date_format(format_name: str | None = None) str | None [source]¶
Get date format string for the specified template.
- Args:
format_name: Format template name
- Returns:
Date format string or None for logging default
- create_formatter(format_name: str | None = None) logging.Formatter [source]¶
Create a logging formatter with appropriate format and date format.
- Args:
format_name: Format template name from CLI
- Returns:
Configured logging.Formatter instance
- get_available_formats() List[str] [source]¶
Get list of available format template names.
- Returns:
List of format template names that can be used with get_format_string()
- Example:
>>> config = OasisLogConfig() >>> formats = config.get_available_formats() >>> 'standard' in formats True