Source code for ds_stoa.utils.logger._context
"""
Logger Context Filter
This module contains the context filter for the logger.
"""
import os
import logging
from typing import Literal, Optional
[docs]
class ContextFilter(logging.Filter):
"""
Context filter to add customized field in the logging
record. This filter is used to add a prefix to the log.
"""
def __init__(self, prefix: Optional[str] = None) -> None:
"""
Constructor for the ContextFilter class.
:param prefix: The prefix to add to the log record.
:return: None
"""
self._prefix = prefix
[docs]
def filter(self, record) -> Literal[True]:
"""
Add prefix to the log record.
:param record: The log record.
:return: True
"""
if not hasattr(record, "prefix"):
record.prefix = "---"
record.prefix = self._prefix
return True
[docs]
class FolderNameFilter(logging.Filter):
[docs]
def filter(self, record) -> Literal[True]:
"""
Add the folder name to the log record.
:param record: The log record.
:return: True
"""
folder_name = os.path.basename(os.path.dirname(record.pathname))
record.folder_name = folder_name
return True