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)