Updated Logging System to Include Application Logs

This commit is contained in:
2026-06-08 12:25:47 -05:00
parent 15e93c1e45
commit 9a9f890494
13 changed files with 323 additions and 12 deletions

View File

@@ -3,6 +3,7 @@
// Office 365 connector ("MessageCard"). Best-effort delivery — failures are counted, never thrown,
// so a bad Teams endpoint can't break the alert cycle.
const { all, audit, now, run } = require('../db');
const { logEvent } = require('../logger');
const TIMEOUT_MS = 10000;
const FORMATS = ['adaptive', 'messagecard'];
@@ -161,8 +162,10 @@ async function deliverAlerts(alerts) {
if (!relevant.length) return { attempted: false, delivered: 0, failed: 0 };
try {
const result = await postPayload(c.webhookUrl, buildPayload(relevant, c));
logEvent('teams', `Posted ${relevant.length} alert(s) to Teams (HTTP ${result.status})`, { count: relevant.length, status: result.status, format: c.format }, result.ok ? 'info' : 'warn');
return { attempted: true, delivered: result.ok ? 1 : 0, failed: result.ok ? 0 : 1, status: result.status, count: relevant.length };
} catch {
} catch (error) {
logEvent('teams', `Teams alert post failed: ${error.message}`, { count: relevant.length }, 'error');
return { attempted: true, delivered: 0, failed: 1 };
}
}
@@ -177,8 +180,10 @@ async function sendTest(userId) {
try {
result = await postPayload(c.webhookUrl, payload);
} catch (error) {
logEvent('teams', `Test card request failed: ${error.message}`, {}, 'error');
throw Object.assign(new Error(`Teams request failed: ${error.message}`), { status: 400 });
}
logEvent('teams', `Test card sent (HTTP ${result.status})`, { status: result.status, format: c.format }, result.ok ? 'info' : 'warn');
audit(userId, 'send', 'teams_test', null, null, { status: result.status });
if (!result.ok) throw Object.assign(new Error(`Teams endpoint returned HTTP ${result.status}`), { status: 400 });
return { ok: true, status: result.status };