|
|
import logging |
|
|
|
|
|
|
|
|
def setup_logger(log_file=None, log_level=logging.INFO): |
|
|
""" |
|
|
Simple function to set up a logger with console and optional file output. |
|
|
|
|
|
Args: |
|
|
log_file: Optional path to a log file |
|
|
log_level: Logging level (default: INFO) |
|
|
|
|
|
Returns: |
|
|
Configured logger instance |
|
|
""" |
|
|
|
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') |
|
|
|
|
|
|
|
|
logger = logging.getLogger() |
|
|
logger.setLevel(log_level) |
|
|
|
|
|
|
|
|
if logger.handlers: |
|
|
logger.handlers.clear() |
|
|
|
|
|
|
|
|
console_handler = logging.StreamHandler() |
|
|
console_handler.setFormatter(formatter) |
|
|
logger.addHandler(console_handler) |
|
|
|
|
|
|
|
|
if log_file: |
|
|
file_handler = logging.FileHandler(log_file) |
|
|
file_handler.setFormatter(formatter) |
|
|
logger.addHandler(file_handler) |
|
|
|
|
|
return logger |
|
|
|