feat: frontend LOG_LEVEL support via logger utility (#209)

- Inject LOG_LEVEL at build time via Vite define (__LOG_LEVEL__, default: warn)
- Create frontend logger utility (frontend/src/utils/logger.ts) mirroring backend API
- Replace all console.error calls with log.error in MedicationsPage, AppContext, Auth
- Supports levels: silent > error > warn > info > debug

Closes #205
This commit is contained in:
Daniel Volz
2026-02-14 20:28:06 +01:00
committed by GitHub
parent cbc71822b0
commit a016e45ef2
5 changed files with 48 additions and 5 deletions
+4 -3
View File
@@ -5,6 +5,7 @@ import { useAuth } from "../components/Auth";
import { useCollapsedDays, useDoses, useMedications, useRefill, useSettings, useShare } from "../hooks";
import type { Coverage, Medication, ScheduleEvent, StockThresholds } from "../types";
import { getSystemLocale } from "../utils/formatters";
import { log } from "../utils/logger";
import { buildSchedulePreview, calculateCoverage, computeMissedPastDoseIds, isDoseDismissed } from "../utils/schedule";
// =============================================================================
@@ -514,7 +515,7 @@ export function AppProvider({ children }: { children: React.ReactNode }) {
document.body.removeChild(a);
URL.revokeObjectURL(url);
} catch (err) {
console.error("Export error:", err);
log.error("Export error:", err);
}
setExporting(false);
},
@@ -568,7 +569,7 @@ export function AppProvider({ children }: { children: React.ReactNode }) {
try {
data = text ? JSON.parse(text) : {};
} catch {
console.error("Import response parse error:", text);
log.error("Import response parse error:", text);
alert(`${t("exportImport.importError")}: Server returned invalid response`);
return;
}
@@ -590,7 +591,7 @@ export function AppProvider({ children }: { children: React.ReactNode }) {
settingsHook.loadSettings();
doses.loadTakenDoses();
} catch (err) {
console.error("Import error:", err);
log.error("Import error:", err);
alert(t("exportImport.importError"));
}