Merge remote-tracking branch 'origin/dev' into bugfix/2151-service-status-set-to-overwhelmed-at-incorrect-actions

This commit is contained in:
Czar Echavez
2024-01-09 15:29:49 +00:00
12 changed files with 92 additions and 21 deletions

View File

@@ -7,11 +7,13 @@ from primaite import _PRIMAITE_ROOT
__all__ = ["SIM_OUTPUT"]
class __SimOutput:
class _SimOutput:
def __init__(self):
self._path: Path = (
_PRIMAITE_ROOT.parent.parent / "simulation_output" / datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
)
self.save_pcap_logs: bool = False
self.save_sys_logs: bool = False
@property
def path(self) -> Path:
@@ -23,4 +25,4 @@ class __SimOutput:
self._path.mkdir(exist_ok=True, parents=True)
SIM_OUTPUT = __SimOutput()
SIM_OUTPUT = _SimOutput()

View File

@@ -41,6 +41,9 @@ class PacketCapture:
def setup_logger(self):
"""Set up the logger configuration."""
if not SIM_OUTPUT.save_pcap_logs:
return
log_path = self._get_log_path()
file_handler = logging.FileHandler(filename=log_path)
@@ -88,5 +91,6 @@ class PacketCapture:
:param frame: The PCAP frame to capture.
"""
msg = frame.model_dump_json()
self.logger.log(level=60, msg=msg) # Log at custom log level > CRITICAL
if SIM_OUTPUT.save_pcap_logs:
msg = frame.model_dump_json()
self.logger.log(level=60, msg=msg) # Log at custom log level > CRITICAL

View File

@@ -41,6 +41,9 @@ class SysLog:
The logger is set to the DEBUG level, and is equipped with a handler that writes to a file and filters out
JSON-like messages.
"""
if not SIM_OUTPUT.save_sys_logs:
return
log_path = self._get_log_path()
file_handler = logging.FileHandler(filename=log_path)
file_handler.setLevel(logging.DEBUG)
@@ -91,7 +94,8 @@ class SysLog:
:param msg: The message to be logged.
"""
self.logger.debug(msg)
if SIM_OUTPUT.save_sys_logs:
self.logger.debug(msg)
def info(self, msg: str):
"""
@@ -99,7 +103,8 @@ class SysLog:
:param msg: The message to be logged.
"""
self.logger.info(msg)
if SIM_OUTPUT.save_sys_logs:
self.logger.info(msg)
def warning(self, msg: str):
"""
@@ -107,7 +112,8 @@ class SysLog:
:param msg: The message to be logged.
"""
self.logger.warning(msg)
if SIM_OUTPUT.save_sys_logs:
self.logger.warning(msg)
def error(self, msg: str):
"""
@@ -115,7 +121,8 @@ class SysLog:
:param msg: The message to be logged.
"""
self.logger.error(msg)
if SIM_OUTPUT.save_sys_logs:
self.logger.error(msg)
def critical(self, msg: str):
"""
@@ -123,4 +130,5 @@ class SysLog:
:param msg: The message to be logged.
"""
self.logger.critical(msg)
if SIM_OUTPUT.save_sys_logs:
self.logger.critical(msg)