Небольшие правки по журналированию

This commit is contained in:
Alexander Zhirov 2025-10-08 03:06:04 +03:00
parent 7b76c65af6
commit f0d7e78268
Signed by: alexander
GPG key ID: C8D8BE544A27C511
2 changed files with 13 additions and 15 deletions

View file

@ -1 +1,6 @@
# TODO # TODO
- Доработать получение TZ до старта демона, добавить необходимые пути в исключения.
- Проверить директорию как точку монтирования (потенциально) для отслеживания в fanotify как новый источник для FILESYSTEM.
- Необходим баннер с суммарной информацией по старту и прекращению работы демона с подробной информацией о работе.
- Вынести параметры CDC (`storage.setupCDC(2048, 8192, 65_536, 0x7FFF, 0x7FF)`) в отдельный блок.

View file

@ -55,6 +55,7 @@ private {
bool handled = receiveTimeout(200.msecs, bool handled = receiveTimeout(200.msecs,
(StopDaemon s) { (StopDaemon s) {
send(mainTid, StoppedDaemon()); send(mainTid, StoppedDaemon());
warning("🚦 Остановка воркера");
}, },
(Session session) { (Session session) {
trace("📩 Получен файл для создания снимка: ", session.filePathOpen); trace("📩 Получен файл для создания снимка: ", session.filePathOpen);
@ -67,7 +68,7 @@ private {
info("⚠️ Файл имеет актуальное состояние снимка: ", session.filePathOpen); info("⚠️ Файл имеет актуальное состояние снимка: ", session.filePathOpen);
} }
} catch (Exception e) { } catch (Exception e) {
writeln("❗️ ", e.msg); errorf("❗️ %s: %s", e.msg, session.filePathOpen);
} }
} }
); );
@ -183,22 +184,16 @@ public:
signal(SIGINT, &handleSignal); signal(SIGINT, &handleSignal);
signal(SIGTERM, &handleSignal); signal(SIGTERM, &handleSignal);
writefln("ВНИМАНИЕ! Демон запущен в %s режиме!", _global ? "глобальном" : "обычном"); infof("ВНИМАНИЕ! Демон запущен в %s режиме!", _global ? "глобальном" : "обычном");
writeln("⚙️ Текущий процесс: ", _pid); info("⚙️ Текущий процесс: ", _pid);
writeln("🗄 База данных: ", _database); info("🗄 База данных: ", _database);
_pds = [ pollfd(_fanFD, POLLIN, 0) ]; _pds = [ pollfd(_fanFD, POLLIN, 0) ];
// Игнорирование файлов, к которым имеет доступ сам демон // Игнорирование файлов, к которым имеет доступ сам демон
foreach (ignoreFile; ignoreFiles) { foreach (ignoreFile; ignoreFiles) {
if (!ignoreFile.exists) continue; if (!ignoreFile.exists) continue;
int res = fanotify_mark( int res = fanotify_mark(_fanFD, FAN_MARK_ADD | FAN_MARK_IGNORE_SURV, _mask, AT_FDCWD, ignoreFile.toStringz());
_fanFD,
FAN_MARK_ADD | FAN_MARK_IGNORE_SURV,
_mask,
AT_FDCWD,
ignoreFile.toStringz()
);
if (auto e = collectException!ErrnoException( if (auto e = collectException!ErrnoException(
errnoEnforce(res == 0, "fanotify_mark failed:") errnoEnforce(res == 0, "fanotify_mark failed:")
)) { )) {
@ -277,7 +272,7 @@ public:
} }
} }
} else { } else {
readlinkFdPath(metadata.fd).writeln; warning("Обнаружен новый источник для добавления в исключения: ", readlinkFdPath(metadata.fd));
} }
// По умолчанию разрешить доступ всем событиям // По умолчанию разрешить доступ всем событиям
@ -322,7 +317,6 @@ public:
if (_fanFD >= 0) close(_fanFD); if (_fanFD >= 0) close(_fanFD);
warning("🚦 Остановка демона по сигналу SIGINT/SIGTERM"); warning("🚦 Остановка демона по сигналу SIGINT/SIGTERM");
// writeln("🚦 Остановка демона по сигналу SIGINT/SIGTERM");
// Отправка дочернему процессу сигнал об остановке // Отправка дочернему процессу сигнал об остановке
send(_tid, StopDaemon()); send(_tid, StopDaemon());
@ -330,8 +324,7 @@ public:
bool stopped = false; bool stopped = false;
receiveTimeout(10.seconds, (StoppedDaemon s) { stopped = true; }); receiveTimeout(10.seconds, (StoppedDaemon s) { stopped = true; });
warning(stopped ? "✅ Воркер остановился" : "⏱️ Воркер не подтвердил остановку"); info(stopped ? "✅ Воркер остановился" : "⏱️ Воркер не подтвердил остановку");
// writeln(stopped ? "✅ Воркер остановился" : "⏱️ Воркер не подтвердил остановку");
// Завершение работы демона // Завершение работы демона
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);