feat(logging): migrate email pipeline to email channel

This commit is contained in:
F4ilji
2026-07-05 23:28:23 +05:00
parent 41b00fcdae
commit 49dd578e50
8 changed files with 60 additions and 60 deletions
@@ -31,7 +31,7 @@ class ConnectToImapTask
// Получаем конфиг для webklex/php-imap
$imapConfig = config('imap');
Log::debug('[ConnectToImapTask] Попытка подключения к IMAP', [
Log::channel('email')->debug('Попытка подключения к IMAP', [
'account' => $accountName,
'host' => $imapConfig['accounts'][$accountName]['host'] ?? 'unknown',
]);
@@ -47,13 +47,13 @@ class ConnectToImapTask
$client = $clientManager->account($accountName);
$client->connect();
Log::debug('[ConnectToImapTask] Успешное подключение к IMAP', [
Log::channel('email')->debug('Успешное подключение к IMAP', [
'account' => $accountName,
]);
return $client;
} catch (\Exception $e) {
Log::error('[ConnectToImapTask] Ошибка подключения к IMAP', [
Log::channel('email')->error('Ошибка подключения к IMAP', [
'account' => $accountName,
'error' => $e->getMessage(),
]);
@@ -72,7 +72,7 @@ class ConnectToImapTask
*/
public function getFolder(Client $client, string $folderName): Folder
{
Log::debug('[ConnectToImapTask] Получение папки', [
Log::channel('email')->debug('Получение папки', [
'folder' => $folderName,
]);
@@ -95,7 +95,7 @@ class ConnectToImapTask
throw EmailFetchException::folderNotFound($folderName);
}
Log::debug('[ConnectToImapTask] Папка получена успешно', [
Log::channel('email')->debug('Папка получена успешно', [
'folder' => $folderName,
'fullName' => $folder->full_name ?? $folder->name ?? $folderName,
]);
@@ -104,7 +104,7 @@ class ConnectToImapTask
} catch (EmailFetchException $e) {
throw $e;
} catch (\Exception $e) {
Log::error('[ConnectToImapTask] Ошибка получения папки', [
Log::channel('email')->error('Ошибка получения папки', [
'folder' => $folderName,
'error' => $e->getMessage(),
]);
@@ -33,7 +33,7 @@ class DownloadAttachmentsTask
{
$disk = $disk ?? config('email-news.attachments_folder', 'email_attachments');
Log::debug('[DownloadAttachmentsTask] Начало загрузки вложений', [
Log::channel('email')->debug('Начало загрузки вложений', [
'message_id' => $message->getMessageId(),
'disk' => $disk,
'memory_usage' => round(memory_get_usage(true) / 1024 / 1024, 2) . 'MB',
@@ -44,11 +44,11 @@ class DownloadAttachmentsTask
$attachments = $message->getAttachments();
if (empty($attachments)) {
Log::warning('[DownloadAttachmentsTask] Вложения не найдены');
Log::channel('email')->warning('Вложения не найдены');
throw EmailFetchException::noAttachmentsFound();
}
Log::debug('[DownloadAttachmentsTask] Найдено вложений', [
Log::channel('email')->debug('Найдено вложений', [
'count' => count($attachments),
]);
@@ -60,7 +60,7 @@ class DownloadAttachmentsTask
try {
// Проверяем размер
if ($maxSize > 0 && $attachment->getSize() > $maxSize) {
Log::warning('[DownloadAttachmentsTask] Вложение превышает максимальный размер', [
Log::channel('email')->warning('Вложение превышает максимальный размер', [
'filename' => $attachment->getName(),
'size' => $attachment->getSize(),
'max_size' => $maxSize,
@@ -83,7 +83,7 @@ class DownloadAttachmentsTask
contentId: $attachment->getContentId(),
);
Log::debug('[DownloadAttachmentsTask] Вложение сохранено', [
Log::channel('email')->debug('Вложение сохранено', [
'filename' => $attachment->getName(),
'path' => $savedPath,
'size' => $attachment->getSize(),
@@ -92,13 +92,13 @@ class DownloadAttachmentsTask
// OPTIMIZATION: Логирование памяти для больших вложений
if (memory_get_usage(true) > self::MEMORY_LOG_THRESHOLD) {
Log::debug('[DownloadAttachmentsTask] Высокое использование памяти', [
Log::channel('email')->debug('Высокое использование памяти', [
'memory_usage' => round(memory_get_usage(true) / 1024 / 1024, 2) . 'MB',
'peak_memory' => round(memory_get_peak_usage(true) / 1024 / 1024, 2) . 'MB',
]);
}
} catch (\Exception $e) {
Log::error('[DownloadAttachmentsTask] Ошибка сохранения вложения', [
Log::channel('email')->error('Ошибка сохранения вложения', [
'filename' => $attachment->getName(),
'error' => $e->getMessage(),
]);
@@ -107,11 +107,11 @@ class DownloadAttachmentsTask
}
if (empty($savedAttachments)) {
Log::error('[DownloadAttachmentsTask] Не удалось сохранить ни одно вложение');
Log::channel('email')->error('Не удалось сохранить ни одно вложение');
throw EmailFetchException::noAttachmentsFound();
}
Log::debug('[DownloadAttachmentsTask] Загрузка вложений завершена', [
Log::channel('email')->debug('Загрузка вложений завершена', [
'saved_count' => count($savedAttachments),
'memory_usage' => round(memory_get_usage(true) / 1024 / 1024, 2) . 'MB',
]);
@@ -145,7 +145,7 @@ class DownloadAttachmentsTask
return $disk . '/' . $filename;
}
} catch (\Exception $e) {
Log::error('[DownloadAttachmentsTask:saveAttachment] Ошибка сохранения', [
Log::channel('email')->error('Ошибка сохранения', [
'filename' => $attachment->getName(),
'error' => $e->getMessage(),
]);
@@ -29,7 +29,7 @@ class FetchUnreadEmailsTask
{
$limit = $limit ?? config('imap.options.fetch_limit', 20);
Log::debug('[FetchUnreadEmailsTask] Получение непрочитанных писем', [
Log::channel('email')->debug('Получение непрочитанных писем', [
'folder' => $folder->full_name ?? $folder->name ?? 'unknown',
'limit' => $limit,
]);
@@ -75,7 +75,7 @@ class FetchUnreadEmailsTask
'emails_count' => count($emails),
]);
Log::debug('[FetchUnreadEmailsTask] Получены письма', [
Log::channel('email')->debug('Получены письма', [
'count' => count($emails),
'folder' => $folder->full_name ?? $folder->name ?? 'unknown',
]);
@@ -85,7 +85,7 @@ class FetchUnreadEmailsTask
// Пробрасываем наши кастомные исключения
throw $e;
} catch (\Exception $e) {
Log::error('[FetchUnreadEmailsTask] Ошибка получения писем', [
Log::channel('email')->error('Ошибка получения писем', [
'error' => $e->getMessage(),
'trace' => $e->getTraceAsString(),
]);
@@ -32,13 +32,13 @@ class FilterBySenderTask
}
}
Log::debug('[FilterBySenderTask] Фильтрация писем', [
Log::channel('email')->debug('Фильтрация писем', [
'total_emails' => count($emails),
'allowed_senders' => $allowedSenders,
]);
if (empty($allowedSenders)) {
Log::warning('[FilterBySenderTask] Не указан разрешённый отправитель, пропускаем все письма');
Log::channel('email')->warning('Не указан разрешённый отправитель, пропускаем все письма');
return [];
}
@@ -54,7 +54,7 @@ class FilterBySenderTask
// Логируем только если включено логирование
if (config('email-news.log_skipped_emails', true)) {
Log::debug('[FilterBySenderTask] Пропущено письмо от неразрешённого отправителя', [
Log::channel('email')->debug('Пропущено письмо от неразрешённого отправителя', [
'from' => $fromEmail,
'subject' => $email['subject'],
'date' => $email['date'],
@@ -66,7 +66,7 @@ class FilterBySenderTask
$filtered[] = $email;
}
Log::debug('[FilterBySenderTask] Фильтрация завершена', [
Log::channel('email')->debug('Фильтрация завершена', [
'total' => count($emails),
'filtered' => count($filtered),
'skipped' => $skippedCount,
@@ -17,7 +17,7 @@ class MarkEmailAsReadTask
*/
public function run(object $message): bool
{
Log::debug('[MarkEmailAsReadTask] Пометка письма как прочитанного', [
Log::channel('email')->debug('Пометка письма как прочитанного', [
'message_id' => $message->getMessageId(),
'subject' => $message->getSubject(),
]);
@@ -25,11 +25,11 @@ class MarkEmailAsReadTask
try {
$message->setFlag('Seen');
Log::debug('[MarkEmailAsReadTask] Письмо помечено как прочитанное');
Log::channel('email')->debug('Письмо помечено как прочитанное');
return true;
} catch (\Exception $e) {
Log::error('[MarkEmailAsReadTask] Ошибка пометки письма', [
Log::channel('email')->error('Ошибка пометки письма', [
'error' => $e->getMessage(),
]);
@@ -46,7 +46,7 @@ class MarkEmailAsReadTask
*/
public function markAndMove(object $message, string $targetFolder): bool
{
Log::debug('[MarkEmailAsReadTask] Пометка и перемещение письма', [
Log::channel('email')->debug('Пометка и перемещение письма', [
'message_id' => $message->getMessageId(),
'target_folder' => $targetFolder,
]);
@@ -58,13 +58,13 @@ class MarkEmailAsReadTask
// Перемещаем в другую папку
$message->moveToFolder($targetFolder);
Log::debug('[MarkEmailAsReadTask] Письмо обработано и перемещено', [
Log::channel('email')->debug('Письмо обработано и перемещено', [
'target_folder' => $targetFolder,
]);
return true;
} catch (\Exception $e) {
Log::error('[MarkEmailAsReadTask] Ошибка обработки письма', [
Log::channel('email')->error('Ошибка обработки письма', [
'error' => $e->getMessage(),
]);