Skip to content

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!")