#2470: implement PR suggestions

This commit is contained in:
Czar Echavez
2024-04-18 16:38:42 +01:00
parent 2a1203675d
commit 34773ed225
7 changed files with 53 additions and 77 deletions

View File

@@ -35,7 +35,7 @@ class PrimaiteIO:
"""Whether to save system logs."""
write_sys_log_to_terminal: bool = False
"""Whether to write the sys log to the terminal."""
log_level: LogLevel = LogLevel.INFO
sys_log_level: LogLevel = LogLevel.INFO
"""The level of log that should be included in the logfiles/logged into terminal."""
def __init__(self, settings: Optional[Settings] = None) -> None:
@@ -52,7 +52,7 @@ class PrimaiteIO:
SIM_OUTPUT.save_pcap_logs = self.settings.save_pcap_logs
SIM_OUTPUT.save_sys_logs = self.settings.save_sys_logs
SIM_OUTPUT.write_sys_log_to_terminal = self.settings.write_sys_log_to_terminal
SIM_OUTPUT.log_level = self.settings.log_level
SIM_OUTPUT.sys_log_level = self.settings.sys_log_level
def generate_session_path(self, timestamp: Optional[datetime] = None) -> Path:
"""Create a folder for the session and return the path to it."""
@@ -100,8 +100,8 @@ class PrimaiteIO:
"""Create an instance of PrimaiteIO based on a configuration dict."""
config = config or {}
if config.get("log_level"):
config["log_level"] = LogLevel[config["log_level"].upper()] # convert to enum
if config.get("sys_log_level"):
config["sys_log_level"] = LogLevel[config["sys_log_level"].upper()] # convert to enum
new = cls(settings=cls.Settings(**config))

View File

@@ -1,6 +1,6 @@
"""Warning: SIM_OUTPUT is a mutable global variable for the simulation output directory."""
from datetime import datetime
from enum import Enum
from enum import IntEnum
from pathlib import Path
from primaite import _PRIMAITE_ROOT
@@ -8,20 +8,18 @@ from primaite import _PRIMAITE_ROOT
__all__ = ["SIM_OUTPUT"]
class LogLevel(Enum):
class LogLevel(IntEnum):
"""Enum containing all the available log levels for PrimAITE simulation output."""
OFF = 999
"""No logs will be output to terminal or log file."""
DEBUG = 1
DEBUG = 10
"""Debug items will be output to terminal or log file."""
INFO = 2
INFO = 20
"""Info items will be output to terminal or log file."""
WARNING = 3
WARNING = 30
"""Warnings will be output to terminal or log file."""
ERROR = 4
ERROR = 40
"""Errors will be output to terminal or log file."""
CRITICAL = 5
CRITICAL = 50
"""Critical errors will be output to terminal or log file."""
@@ -33,7 +31,7 @@ class _SimOutput:
self.save_pcap_logs: bool = False
self.save_sys_logs: bool = False
self.write_sys_log_to_terminal: bool = False
self.log_level: LogLevel = LogLevel.INFO # default log level is at INFO
self.sys_log_level: LogLevel = LogLevel.INFO # default log level is at INFO
@property
def path(self) -> Path:

View File

@@ -99,7 +99,7 @@ class SysLog:
:param msg: The message to be logged.
:param to_terminal: If True, prints to the terminal too.
"""
if SIM_OUTPUT.log_level.value > LogLevel.DEBUG.value:
if SIM_OUTPUT.sys_log_level > LogLevel.DEBUG:
return
if SIM_OUTPUT.save_sys_logs:
@@ -113,7 +113,7 @@ class SysLog:
:param msg: The message to be logged.
:param to_terminal: If True, prints to the terminal too.
"""
if SIM_OUTPUT.log_level.value > LogLevel.INFO.value:
if SIM_OUTPUT.sys_log_level > LogLevel.INFO:
return
if SIM_OUTPUT.save_sys_logs:
@@ -127,7 +127,7 @@ class SysLog:
:param msg: The message to be logged.
:param to_terminal: If True, prints to the terminal too.
"""
if SIM_OUTPUT.log_level.value > LogLevel.WARNING.value:
if SIM_OUTPUT.sys_log_level > LogLevel.WARNING:
return
if SIM_OUTPUT.save_sys_logs:
@@ -141,7 +141,7 @@ class SysLog:
:param msg: The message to be logged.
:param to_terminal: If True, prints to the terminal too.
"""
if SIM_OUTPUT.log_level.value > LogLevel.ERROR.value:
if SIM_OUTPUT.sys_log_level > LogLevel.ERROR:
return
if SIM_OUTPUT.save_sys_logs:
@@ -155,7 +155,7 @@ class SysLog:
:param msg: The message to be logged.
:param to_terminal: If True, prints to the terminal too.
"""
if LogLevel.CRITICAL.value < SIM_OUTPUT.log_level.value:
if LogLevel.CRITICAL < SIM_OUTPUT.sys_log_level:
return
if SIM_OUTPUT.save_sys_logs: