logger
Class: Logger
A logger object which can be used in instantiated and/or non-instantiated use-cases.
Method: constructor
Instantiates the Logger object.
Source
def __init__(self, l_format: Format = Format(), l_echo: bool = True, l_save: bool = False,
l_filepath: str = "./logs", l_file_extension: str = "log"):
self.format = l_format
self.echo = l_echo
self.save = l_save
self.filepath = l_filepath
self.file_extension = l_file_extension
Parameters
l_format
The format of the log message, date and time.
- Type: Format
- Default: Format()
l_echo
Whether to echo the log to the terminal.
- Type: bool
- Default: True
l_save
Whether to save the logs to a file.
- Type: bool
- Default: False
l_filepath
The filepath to save the log files to if the 'l_save' property is set to True.
- Type: str
- Default: "./logs"
l_file_extension
The log file extension.
- Type: str
- Default: ".log"
Example
from logpy import Logger
logger = Logger()
Method: log
Log an event and depending on your logger object properties save and/or echo the log.
Source
def log(self, l_message: str, l_level: Level = Levels.normal, l_date: datetime = datetime.now(),
l_time: datetime = datetime.now()):
log = self.format.generate_log(l_message, l_date, l_time, l_level)
if self.save:
file = f"{self.filepath}/{datetime.now().strftime(self.format.date)}.{self.file_extension}"
if os.path.exists(file):
with open(file, "a") as log_file:
log_file.write(f"{log}\n")
else:
if self.filepath == "./logs" and not os.path.exists(self.filepath):
os.makedirs("./logs")
with open(file, "w") as log_file:
log_file.write(f"{log}\n")
if self.echo:
print(log)
Parameters
l_message
The message of the log.
- Type: str
l_level
The level of the log.
- Type: Level
- Default: Levels.normal
l_date
The date of the log.
- Type: datetime.datetime
- Default: datetime.datetime.now()
l_time
The time of the log.
- Type: datetime.datetime
- Default: datetime.datetime.now()
Example
from logpy import Logger
logger = Logger()
logger.log("Hello World!")
Method: slog
Log an event and echo it to the terminal.
Warning
This method does not allow saving to a file. For that you will need to instantiate the Logger object and use the log method.
Source
@staticmethod
def slog(l_message: str, l_level: Level = Levels.normal, l_date: datetime = datetime.now(),
l_time: datetime = datetime.now(), l_format: Format = Format()):
print(l_format.generate_log(l_message, l_date, l_time, l_level))
Parameters
l_message
The message of the log.
- Type: str
l_level
The level of the log.
- Type: Level
- Default: Levels.normal
l_date
The date of the log.
- Type: datetime.datetime
- Default: datetime.datetime.now()
l_time
The time of the log.
- Type: datetime.datetime
- Default: datetime.datetime.now()
l_format
The format of the log.
- Type: Format
- Default: Format()
Example
from logpy import Logger
Logger.slog("Hello World!")