Перейти к содержанию

Абстрактный класс: LogGenerator

Краткое содержание:

Абстрактный класс для управления процессом логирования. Класс включает в себя базовый функционал для записи логов в файлы, базу данных и отправки уведомлений в Telegram.


Свойства


Методы


Подробности

  • Путь: engine/inc/maharder/_includes/classes/LogGenerator.php

Свойства

protected $db_logs : bool


Краткое содержание

Сохранять логи в базе данных

Тип: Логические значения

protected $initialized : bool


Краткое содержание

Проверяет, сформирован класс или нет

Тип: Логические значения

Tags
Тэг Версия Описание
since 173.3.0

protected $logs : bool


Краткое содержание

Регулятор логирования системы

Тип: Логические значения

protected $telegram_bot : ?string


Краткое содержание

API телеграм бота, который будет отправлять логи

Тип: Текст или null

protected $telegram_channel : string|int|null


Краткое содержание

ID канала, куда будут отправляться логи

Тип: Текст / целое число / null

protected $telegram_send : bool


Краткое содержание

Регулятор отправки логов в телеграм канал По умолчанию - выключен

Тип: Логические значения

protected $telegram_type : ?string


Краткое содержание

Тип логов, которые будут отправлены в телеграм

Тип: Текст или null

Подробности:


Методы

generateLog

Text Only
static public generateLog(string  service, string  functionName, mixed  message, string  type = "error") : void
Краткое содержание

Генерация лог-файлов при возникновении ошибки или другой значимой ситуации в процессе работы системы.

Описание

Данная функция создаёт лог-файлы в зависимости от указанного типа ошибки, хранит подробную информацию о сервисе, функции, дате/времени и сообщении. Помимо записи в файл, опционально отправляются уведомления в Telegram и сохраняются логи в базу данных.

Свойства:
Название Тип По умолчанию
$service string
$functionName string
$message mixed
$type string "error"
Ошибки:
Тип Описание
\JsonException|\Throwable Исключение, связанное с ошибками в JSON-конверсии (может быть выброшено при выполнении Telegram-лога).
Возвращает:
Text Only
void

getAllowedType

Text Only
static public getAllowedType(string  type) : string
Краткое содержание

Возвращает описание разрешенного типа ошибки по его ключу.

Описание

Перечень всех доступных типов с их описаниями задается методом getAllowedTypes(). Если указанный ключ $type отсутствует в списке, будет сгенерирована ошибка типа PHP undefined index.

Свойства:
Название Тип По умолчанию
$type string
Возвращает:
Text Only
string

Описание типа ошибки, соответствующее переданному ключу.

getAllowedTypes().


getAllowedTypes

Text Only
static public getAllowedTypes() : array
Краткое содержание

Возвращает массив доступных типов сообщений с их локализованными описаниями.

Описание

Типы сообщений включают различные уровни, такие как ошибка, информация, предупреждение, и другие. Также добавляются сокращенные обозначения для некоторых ключевых типов, таких как "warn", "crit" или "emergency". Локализация осуществляется с использованием функции __.

Возвращает:
Text Only
array

Ассоциативный массив, где ключи — идентификаторы типов сообщений, а значения — локализованные описания.


getLogs

Text Only
static public getLogs() : bool
Краткое содержание

Получает текущий статус логирования.

Описание

Метод инициализирует необходимые настройки через self::init(), если они еще не были установлены, и устанавливает значение self::$logs, если оно не было задано. Значение берется из настроек, полученных через DataManager::getConfig("maharder").

Ошибки:
Тип Описание
\RuntimeException|\JsonException Если DataManager::getConfig() выбрасывает исключение (например, при ошибке чтения конфигурации).
\Exception Если возникнут ошибки во время инициализации (в методе init()).
Возвращает:
Text Only
bool

Возвращает текущее состояние логирования.


getTelegramBot

Text Only
static public getTelegramBot() : string
Краткое содержание

Возвращает идентификатор Telegram-бота.

Описание

Метод возвращает текущее значение идентификатора Telegram-бота, хранящегося в статическом свойстве $telegram_bot.

Ошибки:
Тип Описание
\RuntimeException Если идентификатор Telegram-бота не установлен (равен null).
Возвращает:
Text Only
string

Идентификатор Telegram-бота.


getTelegramChannel

Text Only
static public getTelegramChannel() : int|string|null
Краткое содержание

Возвращает идентификатор Telegram-канала.

Описание

Метод возвращает идентификатор канала в различных форматах:

  • Если канал настроен, он может быть представлен числом (целочисленным идентификатором) или строкой (например, в виде alias).
  • Если канал отсутствует, метод вернет null.
Возвращает:
Text Only
int|string|null

Возвращает идентификатор Telegram-канала в виде числа, строки или null, если канал не настроен.


getTelegramType

Text Only
static public getTelegramType() : string
Краткое содержание

Возвращает тип Telegram в зависимости от установленного значения.

Описание

Если свойство $telegram_type не задано (null или пустое значение), возвращает значение по умолчанию "all".

Возвращает:
Text Only
string

Тип Telegram. Может возвращать либо значение $telegram_type, либо строку "all" в качестве значения по умолчанию.


init

Text Only
static public init() : void
Краткое содержание

Инициализирует настройки для логирования. Функция настраивает параметры телеграм-логирования, базы данных для логов и другие параметры, используя данные конфигурации. Флаг initialized предотвращает повторную инициализацию.

Ошибки:
Тип Описание
\JsonException Исключение выбрасывается, если манипуляции с JSON в процессе получения данных конфигурации или установки параметров окажутся некорректными.
Возвращает:
Text Only
void

isDbLogs

Text Only
static public isDbLogs() : bool
Краткое содержание

Проверяет, включены ли логирования в базе данных.

Описание

Если состояние логов в базе данных еще не было установлено, метод загружает конфигурацию из DataManager и устанавливает значение на основании параметра logs_db в конфигурации. Если параметр отсутствует, логирование в БД считается выключенным по умолчанию.

Ошибки:
Тип Описание
\RuntimeException|\JsonException Если конфигурация приложения не может быть получена (зависит от реализации DataManager).
Возвращает:
Text Only
bool

Возвращает true, если логирование в базе данных включено, иначе false.


isTelegramSend

Text Only
static public isTelegramSend() : bool
Краткое содержание

Проверяет, включена ли отправка логов через Telegram.

Описание

Если флаг $telegram_send еще не установлен (false) и есть логи (определяется методом getLogs()), функция загружает конфигурацию из DataManager и устанавливает флаг на основе значения опции logs_telegram. В противном случае отправка через Telegram отключается.

Ошибки:
Тип Описание
\RuntimeException|\JsonException Если возникает ошибка при загрузке или обработке конфигурации из DataManager.
Возвращает:
Text Only
bool

Возвращает true, если отправка логов через Telegram включена, или false, если отключена.


setDbLogs

Text Only
static public setDbLogs(bool  db_logs) : void
Краткое содержание

Устанавливает логирование работы с базой данных.

Свойства:
Название Тип По умолчанию
$db_logs bool
Возвращает:
Text Only
void

setLogs

Text Only
static public setLogs(bool|int  logs) : void
Краткое содержание

Устанавливает состояние логирования.

Описание

Если передано значение true, включается логирование. Если передано значение false, логирование выключается. Также поддерживается передача целочисленного значения, которое будет приведено к булевому типу.

Смотри так-же:
Свойства:
Название Тип По умолчанию
$logs bool|int
Ошибки:
Тип Описание
\Exception Если возникнут ошибки во время инициализации (в методе init()).
Возвращает:
Text Only
void

Функция не возвращает значения.


setTelegramBot

Text Only
static public setTelegramBot(string|null  telegram_bot) : void
Краткое содержание

Устанавливает идентификатор или токен Telegram-бота.

Описание

Метод позволяет задать идентификатор или токен используемого Telegram-бота, если он используется в приложении. Для удаления текущего значения передайте null.

Свойства:
Название Тип По умолчанию
$telegram_bot string|null
Возвращает:
Text Only
void

setTelegramChannel

Text Only
static public setTelegramChannel(int|string|null  telegram_channel) : void
Краткое содержание

Устанавливает идентификатор или имя канала Telegram.

Описание

Эта функция задаёт значение статического свойства $telegram_channel, позволяя указать идентификатор канала, имя или установить значение в null, чтобы сбросить текущее состояние.

Свойства:
Название Тип По умолчанию
$telegram_channel int | string | null
Возвращает:
Text Only
void

setTelegramSend

Text Only
static public setTelegramSend(bool  telegram_send = false) : void
Краткое содержание

Устанавливает флаг для отправки сообщений через Telegram.

Описание

Этот метод изменяет состояние статического свойства $telegram_send, которое указывает, должны ли сообщения отправляться через Telegram.

Свойства:
Название Тип По умолчанию
$telegram_send bool false
Возвращает:
Text Only
void

Метод не возвращает значения.


setTelegramType

Text Only
static public setTelegramType(string|null  telegram_type) : void
Краткое содержание

Устанавливает тип Telegram для текущего экземпляра.

Свойства:
Название Тип По умолчанию
$telegram_type string|null
Возвращает:
Text Only
void

createLogDirectory

Text Only
static private createLogDirectory(string  service, string  module, string  path) : bool
Краткое содержание

Создает директорию для логов с учетом указанного сервиса, модуля и пути.

Описание

Функция вызывает метод DataManager::createDir для создания директории, а также дополнительно проверяет существование директории через is_dir().

Свойства:
Название Тип По умолчанию
$service string
$module string
$path string
Ошибки:
Тип Описание
\Throwable В случае ошибки при вызове DataManager::createDir могут быть выброшены исключения, которые логируются в системе.
Возвращает:
Text Only
bool

Возвращает true, если директория была успешно создана или уже существует; false, если создание директории завершилось ошибкой.


dbLog

Text Only
static private dbLog(array  message, string  type) : void
Краткое содержание

Логирует сообщение в базу данных, если включены настройки логирования в БД.

Описание

Функция инициализирует настройки логирования, проверяет, включено ли логирование в базу данных, создает объект лога, форматирует сообщение и сохраняет его в базу данных.

Свойства:
Название Тип По умолчанию
$message array
$type string
Ошибки:
Тип Описание
\RuntimeException Если не удается сохранить лог в базу данных.
\JsonException|\Throwable При возникновении ошибок в процессе работы с JSON или других исключений.
Возвращает:
Text Only
void

fileLog

Text Only
static private fileLog(string  file, mixed  message, int  level) : void
Краткое содержание

Логирование сообщений в файл.

Описание

Метод записывает переданное сообщение в указанный лог-файл, если включено логирование. Сообщение предварительно сериализуется перед записью.

Свойства:
Название Тип По умолчанию
$file string
$message mixed
$level int
Ошибки:
Тип Описание
\JsonException Генерируется, если в процессе инициализации (инициализация через self::init()) возникает ошибка, связанная с обработкой JSON (например, при работе с конфигурацией DataManager::getConfig()).
Возвращает:
Text Only
void

Функция ничего не возвращает.


formatMessage

Text Only
static private formatMessage(string|array  message) : string
Краткое содержание

Форматирует сообщение для отображения в виде строки.

Описание

Если сообщение передано в виде массива, функция преобразует его в строку, где каждый элемент массива будет представлен как отдельная строка, разделенная тегами <br />. В случае, если ключ является строкой, он будет выделен тегом <b>. Если сообщение уже является строкой, возвращает его без изменений.

Свойства:
Название Тип По умолчанию
$message string|array
Ошибки:
Тип Описание
\InvalidArgumentException Если входной параметр не является строкой или массивом (сценарий невозможен в данной реализации, но документация указывает на строгие ожидания типов).
Возвращает:
Text Only
string

Возвращает отформатированное сообщение в виде строки. Если входной параметр — строка, возвращается без изменений, если массив — объединяется в строку с использованием тега <br />.


getErrorNotification

Text Only
static private getErrorNotification(string  service, string  functionName, string  type, string  dateTime, mixed  message) : string
Краткое содержание

Генерирует HTML-уведомление об ошибке для указанного модуля и функции.

Описание

Формирует содержимое уведомления с информацией о модуле, функции, типе ошибки, дате и времени, а также сообщением об ошибке.

Свойства:
Название Тип По умолчанию
$service string
$functionName string
$type string
$dateTime string
$message mixed
Возвращает:
Text Only
string

Возвращает сгенерированное HTML-уведомление с детализированной информацией об ошибке.


telegramLog

Text Only
static private telegramLog(array  message, string  type) : void
Краткое содержание

Отправляет лог-сообщение в Telegram.

Описание

Функция формирует и отправляет сообщение с логом в указанный Telegram-чат, проверяя настройки и типы логов, допустимые для отправки. Если отправка не удалась, сообщение об ошибке записывается в лог приложения.

Свойства:
Название Тип По умолчанию
$message array
$type string
Ошибки:
Тип Описание
\RuntimeException В случае ошибки HTTP-запроса или сбоя при работе с Telegram API.
\JsonException|\Throwable При возникновении ошибок в процессе работы с JSON или других исключений.
Возвращает:
Text Only
void

Функция ничего не возвращает.