diff --git a/src/routes/api/backend_log.ts b/src/routes/api/backend_log.ts index f57886242..2f056158d 100644 --- a/src/routes/api/backend_log.ts +++ b/src/routes/api/backend_log.ts @@ -1,18 +1,30 @@ "use strict"; -import fs from "fs"; +import { readFile } from "fs/promises"; +import { join } from "path"; import dateUtils from "../../services/date_utils.js"; import dataDir from "../../services/data_dir.js"; +import log from "../../services/log.js"; +import { t } from "i18next"; + const { LOG_DIR } = dataDir; -function getBackendLog() { - const file = `${LOG_DIR}/trilium-${dateUtils.localNowDate()}.log`; - +async function getBackendLog() { + const fileName = `trilium-${dateUtils.localNowDate()}.log`; try { - return fs.readFileSync(file, "utf8"); + const file = join(LOG_DIR, fileName); + return await readFile(file, "utf8"); } catch (e) { + const isErrorInstance = e instanceof Error; + // most probably the log file does not exist yet - https://github.com/zadam/trilium/issues/1977 - return ""; + if (isErrorInstance && "code" in e && e.code === "ENOENT") { + log.error(e); + return t("backend_log.log-does-not-exist", { fileName }); + } + + log.error(isErrorInstance ? e : `Reading the backend log '${fileName}' failed with an unknown error: '${e}'.`); + return t("backend_log.reading-log-failed", { fileName }); } } diff --git a/translations/de/server.json b/translations/de/server.json index a782e3c70..41bf37a70 100644 --- a/translations/de/server.json +++ b/translations/de/server.json @@ -193,5 +193,9 @@ "test_sync": { "not-configured": "Der Synchronisations-Server-Host ist nicht konfiguriert. Bitte konfiguriere zuerst die Synchronisation.", "successful": "Die Server-Verbindung wurde erfolgreich hergestellt, die Synchronisation wurde gestartet." + }, + "backend_log": { + "log-does-not-exist": "Die Backend-Log-Datei '{{ fileName }}' existiert (noch) nicht.", + "reading-log-failed": "Das Lesen der Backend-Log-Datei '{{ fileName }}' ist fehlgeschlagen." } } diff --git a/translations/en/server.json b/translations/en/server.json index fd4aa19c8..2b1d4fb6b 100644 --- a/translations/en/server.json +++ b/translations/en/server.json @@ -246,5 +246,9 @@ "new-note": "New note", "duplicate-note-suffix": "(dup)", "duplicate-note-title": "{{ noteTitle }} {{ duplicateNoteSuffix }}" + }, + "backend_log": { + "log-does-not-exist": "The backend log file '{{ fileName }}' does not exist (yet).", + "reading-log-failed": "Reading the backend log file '{{ fileName }}' failed." } }