A simple logger class that allows logging messages to the screen or to a file.
Logging can be turned on or off.
| Parameters: |
-
log_to_file
(bool, default:
True
)
–
Whether to log messages to a file.
-
log_file
(str, default:
'simulation_trace.log'
)
–
The file to which log messages will be written.
-
log_to_screen
(bool, default:
True
)
–
Whether to log messages to the screen.
|
| Attributes: |
-
logger
(Logger)
–
The logger instance used for logging messages.
-
log_to_file
(bool)
–
Flag indicating whether to log to a file.
-
log_to_screen
(bool)
–
Flag indicating whether to log to the screen.
|
Methods:
| Name |
Description |
set_log_file |
Sets the log file to write simulation logs.
|
get_log_file |
Returns the current log file name (path) in which simulation logs are written.
|
set_logger |
Sets the logger name to write simulation logs.
|
configure_logger |
Configures the logger by adding handlers based on user preferences.
|
log |
Logs a message at the specified level.
|
enable_logging |
Enables logging by configuring the logger with the appropriate handlers.
|
disable_logging |
Disables logging by clearing all handlers from the logger.
|
Initializes the Logger with options to log to file, log file name, and log to screen.
| Parameters: |
-
log_to_file
(bool, default:
True
)
–
Whether to log messages to a file. Defaults to False.
-
log_file
(str, default:
'simulation_trace.log'
)
–
The file to which log messages will be written. Defaults to 'app.log'.
-
log_to_screen
(bool, default:
True
)
–
Whether to log messages to the screen. Defaults to True.
|
| Attributes: |
-
logger
(Logger)
–
The logger instance used for logging messages.
-
log_to_file
(bool)
–
Flag indicating whether to log to a file.
-
log_to_screen
(bool)
–
Flag indicating whether to log to the screen.
|
Source code in src/SupplyNetPy/Components/logger.py
def __init__(self, logger_name='sim_trace', log_to_file=True, log_file='simulation_trace.log', log_to_screen=True):
"""
Initializes the Logger with options to log to file, log file name, and log to screen.
Parameters:
log_to_file (bool): Whether to log messages to a file. Defaults to False.
log_file (str): The file to which log messages will be written. Defaults to 'app.log'.
log_to_screen (bool): Whether to log messages to the screen. Defaults to True.
Attributes:
logger (logging.Logger): The logger instance used for logging messages.
log_to_file (bool): Flag indicating whether to log to a file.
log_to_screen (bool): Flag indicating whether to log to the screen.
Returns:
None
"""
self.logger = logging.getLogger(logger_name)
self.logger.setLevel(logging.DEBUG)
self.log_to_file = log_to_file
self.log_to_screen = log_to_screen
self.log_file = log_file
self.configure_logger()
set_log_file
set_log_file(filename)
Sets given log file to write simulation logs
| Parameters: |
-
filename
(str)
–
The file to which log messages will be written.
|
| Attributes: |
-
log_file
(str)
–
The file to which log messages will be written.
|
Source code in src/SupplyNetPy/Components/logger.py
def set_log_file(self,filename):
"""
Sets given log file to write simulation logs
Parameters:
filename (str): The file to which log messages will be written.
Attributes:
log_file (str): The file to which log messages will be written.
Returns:
None
"""
self.log_file = filename
self.configure_logger()
get_log_file
get_log_file()
Returns current log file name (path) in which simulation logs are written
| Returns: |
-
str –
The current log file name (path).
|
Source code in src/SupplyNetPy/Components/logger.py
def get_log_file(self):
"""
Returns current log file name (path) in which simulation logs are written
Parameters:
None
Attributes:
None
Returns:
str: The current log file name (path).
"""
return self.log_file
set_logger
set_logger(logger_name)
Sets given logger name to write simulation logs
| Parameters: |
-
logger_name
(str)
–
The name of the logger to be used for logging messages.
|
| Attributes: |
-
logger
(Logger)
–
The logger instance used for logging messages.
|
Source code in src/SupplyNetPy/Components/logger.py
def set_logger(self,logger_name):
"""
Sets given logger name to write simulation logs
Parameters:
logger_name (str): The name of the logger to be used for logging messages.
Attributes:
logger (logging.Logger): The logger instance used for logging messages.
Returns:
None
"""
self.logger = logging.getLogger(logger_name)
configure_logger()
Configures the logger by adding handlers based on user preferences.
| Attributes: |
-
logger
(Logger)
–
The logger instance used for logging messages.
-
log_to_file
(bool)
–
Flag indicating whether to log to a file.
-
log_to_screen
(bool)
–
Flag indicating whether to log to the screen.
|
Source code in src/SupplyNetPy/Components/logger.py
def configure_logger(self):
"""
Configures the logger by adding handlers based on user preferences.
Parameters:
None
Attributes:
logger (logging.Logger): The logger instance used for logging messages.
log_to_file (bool): Flag indicating whether to log to a file.
log_to_screen (bool): Flag indicating whether to log to the screen.
Returns:
None
"""
self.logger.handlers = []
if self.log_to_screen:
screen_handler = logging.StreamHandler()
screen_handler.setLevel(logging.DEBUG)
screen_format = logging.Formatter('%(levelname)s %(name)s - %(message)s')
screen_handler.setFormatter(screen_format)
self.logger.addHandler(screen_handler)
if self.log_to_file:
file_handler = logging.FileHandler(self.log_file, mode='w')
file_handler.setLevel(logging.DEBUG)
file_format = logging.Formatter('%(levelname)s %(name)s - %(message)s')
file_handler.setFormatter(file_format)
self.logger.addHandler(file_handler)
log
log(level, message)
Logs a message at the specified level.
| Parameters: |
-
level
(str)
–
The level at which to log the message. Can be 'debug', 'info', 'warning', 'error', or 'critical'.
-
message
(str)
–
|
| Attributes: |
-
logger
(Logger)
–
The logger instance used for logging messages.
|
Source code in src/SupplyNetPy/Components/logger.py
def log(self, level, message):
"""
Logs a message at the specified level.
Parameters:
level (str): The level at which to log the message. Can be 'debug', 'info', 'warning', 'error', or 'critical'.
message (str): The message to log.
Attributes:
logger (logging.Logger): The logger instance used for logging messages.
Returns:
None
"""
if self.logger.handlers:
if level == 'debug':
self.logger.debug(message)
elif level == 'info':
self.logger.info(message)
elif level == 'warning':
self.logger.warning(message)
elif level == 'error':
self.logger.error(message)
elif level == 'critical':
self.logger.critical(message)
enable_logging
enable_logging(log_to_file=True, log_to_screen=True)
Enables logging by configuring the logger with the appropriate handlers.
| Parameters: |
-
log_to_file
(bool, default:
True
)
–
Whether to log messages to a file. Defaults to True.
-
log_to_screen
(bool, default:
True
)
–
Whether to log messages to the screen. Defaults to True.
|
| Attributes: |
-
logger
(Logger)
–
The logger instance used for logging messages.
-
log_to_file
(bool)
–
Flag indicating whether to log to a file.
-
log_to_screen
(bool)
–
Flag indicating whether to log to the screen.
|
Source code in src/SupplyNetPy/Components/logger.py
def enable_logging(self,log_to_file=True,log_to_screen=True):
"""
Enables logging by configuring the logger with the appropriate handlers.
Parameters:
log_to_file (bool): Whether to log messages to a file. Defaults to True.
log_to_screen (bool): Whether to log messages to the screen. Defaults to True.
Attributes:
logger (logging.Logger): The logger instance used for logging messages.
log_to_file (bool): Flag indicating whether to log to a file.
log_to_screen (bool): Flag indicating whether to log to the screen.
Returns:
None
"""
logging.disable(logging.NOTSET)
self.log_to_file = log_to_file
self.log_to_screen = log_to_screen
self.configure_logger()
disable_logging
disable_logging()
Disables logging by clearing all handlers from the logger.
| Attributes: |
-
logger
(Logger)
–
The logger instance used for logging messages.
|
Source code in src/SupplyNetPy/Components/logger.py
def disable_logging(self):
"""
Disables logging by clearing all handlers from the logger.
Parameters:
None
Attributes:
logger (logging.Logger): The logger instance used for logging messages.
Returns:
None
"""
logging.disable(logging.CRITICAL)
self.logger.handlers = []