DevCraft Документации
УстаревшееMH Admin (Legacy)Back-EndClasses

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

Документация по плагину абстрактный класс: loggenerator для DLE.

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

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


Свойства


Методы


Подробности

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

Свойства

protected $db_logs : bool


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

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

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

protected $initialized : bool


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

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

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

Tags
ТэгВерсияОписание
since173.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

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

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

Описание

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

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

getAllowedType

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

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

Описание

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

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

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

getAllowedTypes().


getAllowedTypes

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

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

Описание

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

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

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


getLogs

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

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

Описание

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

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

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


getTelegramBot

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

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

Описание

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

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

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


getTelegramChannel

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

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

Описание

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

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

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


getTelegramType

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

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

Описание

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

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

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


init

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

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

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

isDbLogs

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

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

Описание

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

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

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


isTelegramSend

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

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

Описание

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

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

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


setDbLogs

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

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

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

setLogs

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

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

Описание

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

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

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


setTelegramBot

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

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

Описание

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

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

setTelegramChannel

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

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

Описание

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

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

setTelegramSend

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

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

Описание

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

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

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


setTelegramType

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

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

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

createLogDirectory

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

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

Описание

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

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

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


dbLog

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

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

Описание

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

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

fileLog

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

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

Описание

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

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

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


formatMessage

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

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

Описание

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

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

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


getErrorNotification

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

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

Описание

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

Свойства:
НазваниеТипПо умолчанию
$servicestring
$functionNamestring
$typestring
$dateTimestring
$messagemixed
Возвращает:
string

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


telegramLog

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

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

Описание

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

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

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

On this page

Краткое содержание:СвойстваМетодыПодробностиСвойстваprotected $db_logs : boolprotected $initialized : boolTagsprotected $logs : boolprotected $telegram_bot : ?stringprotected $telegram_channel : string|int|nullprotected $telegram_send : boolprotected $telegram_type : ?stringМетодыgenerateLogКраткое содержаниеОписаниеСвойства:Ошибки:Возвращает:getAllowedTypeКраткое содержаниеОписаниеСвойства:Возвращает:getAllowedTypesКраткое содержаниеОписаниеВозвращает:getLogsКраткое содержаниеОписаниеОшибки:Возвращает:getTelegramBotКраткое содержаниеОписаниеОшибки:Возвращает:getTelegramChannelКраткое содержаниеОписаниеВозвращает:getTelegramTypeКраткое содержаниеОписаниеВозвращает:initКраткое содержаниеОшибки:Возвращает:isDbLogsКраткое содержаниеОписаниеОшибки:Возвращает:isTelegramSendКраткое содержаниеОписаниеОшибки:Возвращает:setDbLogsКраткое содержаниеСвойства:Возвращает:setLogsКраткое содержаниеОписаниеСмотри так-же:Свойства:Ошибки:Возвращает:setTelegramBotКраткое содержаниеОписаниеСвойства:Возвращает:setTelegramChannelКраткое содержаниеОписаниеСвойства:Возвращает:setTelegramSendКраткое содержаниеОписаниеСвойства:Возвращает:setTelegramTypeКраткое содержаниеСвойства:Возвращает:createLogDirectoryКраткое содержаниеОписаниеСвойства:Ошибки:Возвращает:dbLogКраткое содержаниеОписаниеСвойства:Ошибки:Возвращает:fileLogКраткое содержаниеОписаниеСвойства:Ошибки:Возвращает:formatMessageКраткое содержаниеОписаниеСвойства:Ошибки:Возвращает:getErrorNotificationКраткое содержаниеОписаниеСвойства:Возвращает:telegramLogКраткое содержаниеОписаниеСвойства:Ошибки:Возвращает: