Profi Log documentation

MasterLogger

class profi_log.MasterLogger(log_file_name: str, name: str | None = None, max_bytes: int = 104857600, backup_count: int = 5, encoding: str = 'utf-8', level: str = 'INFO')[исходный код]

Базовые классы: object

Продвинутый класс для настройки и управления логированием.

critical(msg: str, *args: Any, **kwargs: Any) None[исходный код]
debug(msg: str, *args: Any, **kwargs: Any) None[исходный код]
error(msg: str, *args: Any, **kwargs: Any) None[исходный код]
get_logger(name: str) LoggerProxy[исходный код]

Создает и возвращает именованный логгер.

Параметры:

name (str) – Имя для нового логгера.

Результат:

Прокси-объект, объединяющий функциональность стандартного логгера и MasterLogger.

Тип результата:

LoggerProxy

info(msg: str, *args: Any, **kwargs: Any) None[исходный код]
log_exception(message: str, exc_info: bool = True) None[исходный код]

Логирование исключения с полной трассировкой стека.

Параметры:
  • message (str) – Сообщение об ошибке.

  • exc_info (bool) – Флаг для включения информации об исключении. По умолчанию True.

log_function_call(log_args: bool = True, log_result: bool = True) Callable[исходный код]

Декоратор для автоматического логирования вызовов функций.

Параметры:
  • log_args (bool) – Флаг для логирования аргументов функции. По умолчанию True.

  • log_result (bool) – Флаг для логирования результата функции. По умолчанию True.

Результат:

Декоратор функции.

Тип результата:

Callable

setup_colored_console_logging(format_string: str | None = None) None[исходный код]

Настройка цветного консольного логирования.

Параметры:

format_string (Optional[str]) – Строка форматирования для логов. По умолчанию „%(log_color)s%(asctime)s - %(name)s - %(levelname)s - %(message)s“.

setup_email_logging(smtp_server: str, port: int, sender: str, password: str, recipients: List[str], subject_prefix: str = 'Критическая ошибка') None[исходный код]

Настройка отправки критических логов по электронной почте.

Параметры:
  • smtp_server (str) – SMTP сервер.

  • port (int) – Порт SMTP сервера.

  • sender (str) – Email отправителя.

  • password (str) – Пароль отправителя.

  • recipients (List[str]) – Список получателей.

  • subject_prefix (str) – Префикс для темы письма. По умолчанию «Критическая ошибка».

setup_file_logging() None[исходный код]

Настройка логирования в файл.

temporary_log_level(level: str) None[исходный код]

Контекстный менеджер для временного изменения уровня логирования.

Параметры:

level (str) – Временный уровень логирования.

Yields:

None

warning(msg: str, *args: Any, **kwargs: Any) None[исходный код]

Инициализация

MasterLogger.__init__(log_file_name: str, name: str | None = None, max_bytes: int = 104857600, backup_count: int = 5, encoding: str = 'utf-8', level: str = 'INFO')[исходный код]

Инициализация MasterLogger.

Параметры:
  • log_file_name (str) – Имя файла для логов.

  • name (Optional[str]) – Имя логгера. Если не указано, используется корневой логгер.

  • max_bytes (int) – Максимальный размер файла логов в байтах. По умолчанию 100 МБ.

  • backup_count (int) – Количество резервных копий файлов логов. По умолчанию 5.

  • encoding (str) – Кодировка файла логов. По умолчанию „utf-8“.

  • level (str) – Уровень логирования. По умолчанию „INFO“.

Методы настройки

setup_file_logging

MasterLogger.setup_file_logging() None[исходный код]

Настройка логирования в файл.

setup_colored_console_logging

MasterLogger.setup_colored_console_logging(format_string: str | None = None) None[исходный код]

Настройка цветного консольного логирования.

Параметры:

format_string (Optional[str]) – Строка форматирования для логов. По умолчанию „%(log_color)s%(asctime)s - %(name)s - %(levelname)s - %(message)s“.

setup_email_logging

MasterLogger.setup_email_logging(smtp_server: str, port: int, sender: str, password: str, recipients: List[str], subject_prefix: str = 'Критическая ошибка') None[исходный код]

Настройка отправки критических логов по электронной почте.

Параметры:
  • smtp_server (str) – SMTP сервер.

  • port (int) – Порт SMTP сервера.

  • sender (str) – Email отправителя.

  • password (str) – Пароль отправителя.

  • recipients (List[str]) – Список получателей.

  • subject_prefix (str) – Префикс для темы письма. По умолчанию «Критическая ошибка».

Вспомогательные методы

temporary_log_level

MasterLogger.temporary_log_level(level: str) None[исходный код]

Контекстный менеджер для временного изменения уровня логирования.

Параметры:

level (str) – Временный уровень логирования.

Yields:

None

log_exception

MasterLogger.log_exception(message: str, exc_info: bool = True) None[исходный код]

Логирование исключения с полной трассировкой стека.

Параметры:
  • message (str) – Сообщение об ошибке.

  • exc_info (bool) – Флаг для включения информации об исключении. По умолчанию True.

log_function_call

MasterLogger.log_function_call(log_args: bool = True, log_result: bool = True) Callable[исходный код]

Декоратор для автоматического логирования вызовов функций.

Параметры:
  • log_args (bool) – Флаг для логирования аргументов функции. По умолчанию True.

  • log_result (bool) – Флаг для логирования результата функции. По умолчанию True.

Результат:

Декоратор функции.

Тип результата:

Callable

Методы логирования

debug

MasterLogger.debug(msg: str, *args: Any, **kwargs: Any) None[исходный код]

info

MasterLogger.info(msg: str, *args: Any, **kwargs: Any) None[исходный код]

warning

MasterLogger.warning(msg: str, *args: Any, **kwargs: Any) None[исходный код]

error

MasterLogger.error(msg: str, *args: Any, **kwargs: Any) None[исходный код]

critical

MasterLogger.critical(msg: str, *args: Any, **kwargs: Any) None[исходный код]

Примеры использования

Базовое использование:

from profi_log import MasterLogger

# Инициализация логгера
logger = MasterLogger("app.log", level="DEBUG")

# Настройка цветного консольного логирования
logger.setup_colored_console_logging()

# Использование логгера
logger.info("Это информационное сообщение")
logger.warning("Это предупреждение")
logger.error("Это сообщение об ошибке")

Использование временного уровня логирования:

with logger.temporary_log_level("DEBUG"):
    logger.debug("Это отладочное сообщение")

Логирование исключений:

try:
    1 / 0
except ZeroDivisionError:
    logger.log_exception("Произошла ошибка деления на ноль")

Использование декоратора для логирования вызовов функций:

@logger.log_function_call()
def example_function(x, y):
    return x + y

result = example_function(3, 4)