Source code for custom_tools.general_tools.print_logger

import logging
import os

import env_setup.global_config
import config

# Local root directory
local_root_directory = config.output_folder

# Project root directory
project_root_directory = env_setup.global_config.main_directory_name

# General files directory name
general_files_directory_name = env_setup.global_config.general_files_name

# Logging file name
logging_file_name = "app.log"


[docs] class LogPath: N100Building = rf"{local_root_directory}\{project_root_directory}\{env_setup.global_config.scale_n100}\{env_setup.global_config.object_bygning}\{general_files_directory_name}\{logging_file_name}" N100River = rf"{local_root_directory}\{project_root_directory}\{env_setup.global_config.scale_n100}\{env_setup.global_config.object_elv_bekk}\{general_files_directory_name}\{logging_file_name}"
[docs] def setup_logger(scale, object_type, log_directory="logs", filename=logging_file_name): """ WORK IN PROGRESS NOT DONE Creates a logger for the specified scale and object type. Log files will be stored in a directory structure matching the scale and object type. :param scale: The scale for the log (e.g., 'n100'). :param object_type: The object type for the log (e.g., 'bygning'). :param log_directory: Base directory for logs. Defaults to 'logs'. :param filename: Default filename for the log. Defaults to 'app.log'. :return: Logger instance for the specified scale and object type. """ # Construct the log file path log_path = os.path.join( config.output_folder, env_setup.global_config.main_directory_name, scale, object_type, log_directory, ) if not os.path.exists(log_path): os.makedirs(log_path) full_log_path = os.path.join(log_path, filename) # Configure logger logger = logging.getLogger(f"{scale}_{object_type}") if not logger.handlers: # Avoiding adding handlers multiple times logger.setLevel(logging.INFO) file_handler = logging.FileHandler(full_log_path) formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ) file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger