import logging
import sys
def setup_logger(name: str) -> logging.Logger:
"""
Sets up a standardized logger for application modules.
Args:
name: The name of the logger (usually __name__ of the module).
Returns:
A configured logging.Logger instance.
"""
# Create logger
logger = logging.getLogger(name)
logger.setLevel(logging.INFO) # Default level to INFO
# Prevent logs from propagating to the root logger if already configured
if not logger.handlers:
# Create formatter
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
# Create console handler
ch = logging.StreamHandler(sys.stdout)
ch.setLevel(logging.INFO)
ch.setFormatter(formatter)
# Add handler to logger
logger.addHandler(ch)
return logger
# Example usage (not run, just for reference):
# logger = setup_logger(__name__)
# logger.info("Logger initialized successfully.")