33 lines
2.7 KiB
C++
33 lines
2.7 KiB
C++
#pragma once
|
||
|
||
#include <QString>
|
||
|
||
// Headless-варианты сборки и отправки в Telegram-relay архива из application.log.
|
||
// Используется EventHandler-ом для авто-отправки при ошибках задач.
|
||
// FileLogWindow по-прежнему имеет свою UI-обвязку для ручной отправки (включает БД).
|
||
namespace LogArchiveSender {
|
||
// Собирает архив и постит через свежий NetworkService::postMonitoringDump
|
||
// в собственных background-потоках (worker для zip + thread для HTTP).
|
||
// `label` — короткий тег ("TASK_ERROR" и т.п.), попадает в caption и в имя файла.
|
||
// `eventId` (если > 0) тоже уходит в имя файла для трассировки.
|
||
// `extraCaptionHtml` (если не пусто) — дополнительные строки caption'а
|
||
// (Profile/Material/Phone), уже экранированные; нужны чтобы по общему
|
||
// api-токену различать операторов.
|
||
// Возвращает true если задача поставлена в очередь; реальный результат отправки
|
||
// не отслеживается (fire-and-forget, как у sendMonitoringLog).
|
||
// `sourceLogPath` (если не пусто) — путь к конкретному лог-файлу: он шлётся
|
||
// целиком, без обрезки по последнему часу. Нужен для отправки лога прошлой
|
||
// сессии (application.prev.log), сохранённого до усечения при старте.
|
||
bool dispatch(const QString &label, int eventId = -1, const QString &extraCaptionHtml = {},
|
||
const QString &sourceLogPath = {});
|
||
|
||
// Копирует лог в destDir (создаёт каталог при необходимости).
|
||
// Возвращает true, если файл скопирован.
|
||
// Если `sourceLogPath` пуст — берётся текущий application.log рядом с exe и
|
||
// обрезается по последнему часу (поведение для дампов задач). Если задан —
|
||
// указанный файл копируется целиком.
|
||
// Используется TaskDumpRecorder, чтобы вложить логи прямо в архив дампа
|
||
// задачи и слать всё одним файлом, а не двумя отдельными архивами.
|
||
bool collectInto(const QString &destDir, const QString &sourceLogPath = {});
|
||
}
|