Source code for flowstab.logger

import os
import logging

# Create a logger instance
[docs] logger = logging.getLogger("flowstab")
[docs] class CustomPathnameFilter(logging.Filter):
[docs] def filter(self, record): # Get the full pathname full_path = record.pathname # Split the path into parts path_parts = full_path.split(os.sep) # Limit to the last 2 parts if len(path_parts) > 2: record.pathname = os.sep.join(path_parts[-2:]) return True
[docs] def setup_logger(log_level=logging.INFO): """ Set up the logger for the package. Args: log_level (int): The logging level (e.g., logging.DEBUG, logging.INFO). """ logger.setLevel(log_level) logger.addFilter(CustomPathnameFilter()) # Create console handler and set level ch = logging.StreamHandler() ch.setLevel(log_level) # Create formatter formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(pathname)s:%(lineno)d - PID:%(process)d - %(message)s') # Add formatter to ch ch.setFormatter(formatter) # Add ch to logger if it doesn't have handlers if not logger.hasHandlers(): logger.addHandler(ch)
[docs] def get_logger(): """Return the logger instance.""" return logger