Logging Utilities
The logging module provides comprehensive logging functionality with automatic configuration and file rotation support.
Module Overview
Modern logging system for siege_utilities. Provides structured logging with proper configuration management.
- class siege_utilities.core.logging.LoggerManager[source]
Bases:
objectManages multiple loggers with consistent configuration.
Configure shared logging for all loggers.
- Parameters:
- Return type:
None
- class siege_utilities.core.logging.LoggingConfig[source]
Bases:
objectConfiguration for logging system.
- __init__(log_to_file=False, log_dir=<factory>, max_bytes=5000000, backup_count=5, log_to_console=True, console_level='INFO', file_level='DEBUG', shared_log_file=None, shared_level='INFO')
Configure shared logging for all loggers.
- siege_utilities.core.logging.init_logger(name, log_to_file=False, log_dir='logs', level='INFO', max_bytes=5000000, backup_count=5, shared_log_file=None)[source]
Initialize a logger with specific configuration.
Deprecated since version The: name suggests this function does first-time setup distinct from
get_logger(), but both are get-or-create with shared config. Preferconfigure_shared_logging()to set the shared config andget_logger()to retrieve loggers; theinit_loggershape will be removed in a future release.- Parameters:
- Returns:
Configured logger instance
- Return type:
- siege_utilities.core.logging.set_default_logger_name(name)[source]
Set the default logger name.
- Parameters:
name (str)
- Return type:
None
- siege_utilities.core.logging.log_critical(message, logger_name=None)[source]
Log a critical message.
- siege_utilities.core.logging.parse_log_level(level)[source]
Convert a string or numeric level into a logging level constant.
- siege_utilities.core.logging.temporary_logging_config(config)[source]
Temporarily change logging configuration.
- Parameters:
config (LoggingConfig)
- Return type:
Generator[None, None, None]
Functions
- siege_utilities.core.logging.init_logger(name, log_to_file=False, log_dir='logs', level='INFO', max_bytes=5000000, backup_count=5, shared_log_file=None)[source]
Initialize a logger with specific configuration.
Deprecated since version The: name suggests this function does first-time setup distinct from
get_logger(), but both are get-or-create with shared config. Preferconfigure_shared_logging()to set the shared config andget_logger()to retrieve loggers; theinit_loggershape will be removed in a future release.- Parameters:
- Returns:
Configured logger instance
- Return type:
- siege_utilities.core.logging.get_logger(name=None)[source]
Get a logger instance.
- siege_utilities.core.logging.log_debug(message, logger_name=None)[source]
Log a debug message.
- siege_utilities.core.logging.log_info(message, logger_name=None)[source]
Log an info message.
- siege_utilities.core.logging.log_warning(message, logger_name=None)[source]
Log a warning message.
- siege_utilities.core.logging.log_error(message, logger_name=None)[source]
Log an error message.
- siege_utilities.core.logging.log_critical(message, logger_name=None)[source]
Log a critical message.
Usage Examples
Basic logging setup:
import siege_utilities
# Initialize logger with custom configuration
siege_utilities.init_logger(
name='my_app',
log_to_file=True,
log_dir='logs',
level='DEBUG'
)
# Use logging functions directly
siege_utilities.log_info("Application started")
siege_utilities.log_debug("Debug information")
siege_utilities.log_warning("Warning message")
siege_utilities.log_error("Error occurred")
Advanced logging with file rotation:
# Configure with file rotation
siege_utilities.init_logger(
name='production_app',
log_to_file=True,
log_dir='logs',
level='INFO',
max_bytes=10000000, # 10MB
backup_count=10
)
# Get logger instance for custom handling
logger = siege_utilities.get_logger()
logger.handlers[0].setFormatter(
logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
)
Unit Tests
The logging module has comprehensive test coverage:
✅ test_core_logging.py - All logging functionality tests pass
Test Coverage:
- Logger initialization and configuration
- All log level functions (debug, info, warning, error, critical)
- File logging and rotation
- Log level parsing
- Logger instance retrieval
Test Results: All logging tests pass successfully with 100% coverage.