feat(logger): logger service created with its endpoints

This commit is contained in:
2025-03-19 17:15:33 -05:00
parent c9aa41ab00
commit 7ec5c5beb0
7 changed files with 256 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
import {eq, sql} from "drizzle-orm";
import {db} from "../../../../database/dbclient.js";
import {logs} from "../../../../database/schema/logs.js";
import {createLog} from "../logger.js";
export const clearLog = async (id: string) => {
/**
* mark the log as cleared
*/
try {
const clear = await db
.update(logs)
.set({checked: true, checkedAt: sql`NOW()`})
.where(eq(logs.log_id, id));
createLog("info", "lst", "logger", "Log just cleared.");
return {success: true, message: "Log was just cleared."};
} catch (error) {
createLog("error", "lst", "logger", "There was an error clearing the log.");
return {success: false, message: "There was an error clearing the log."};
}
};

View File

@@ -0,0 +1,28 @@
import {and, eq, inArray, lte, sql} from "drizzle-orm";
import {db} from "../../../../database/dbclient.js";
import {logs} from "../../../../database/schema/logs.js";
import {createLog} from "../logger.js";
export const getLogs = async (data: any) => {
try {
// clear all remaining logs ne to info.
const checked = data.checked && data.checked[0] === "true" ? true : false || false;
const logData = await db
.select()
.from(logs)
.where(
and(
lte(logs.created_at, sql.raw(`NOW() - INTERVAL '${data.hours} hours'`)),
inArray(logs.service, data.service),
inArray(logs.level, data.level),
eq(logs.checked, checked)
)
);
return {success: true, message: "logs returned", data: logData};
} catch (error) {
console.log(error);
createLog("error", "lst", "logger", `There was an error deleteing server logs. ${error}`);
return {success: false, message: "An error occured while trying to get the logs", error};
}
};

View File

@@ -0,0 +1,55 @@
import {and, eq, inArray, lte, ne, sql} from "drizzle-orm";
import {db} from "../../../../database/dbclient.js";
import {logs} from "../../../../database/schema/logs.js";
import {createLog} from "../logger.js";
export const logCleanup = async () => {
/**
* We will run the clean logger where we have aged logs that do not need to be here flooding the db
*/
// clear the server logs older than 3 days
try {
// clear info logs older than 3 days
const delLogs = await db
.delete(logs)
.where(
and(
lte(logs.created_at, sql`NOW() - INTERVAL '3 days'`),
inArray(logs.service, ["server", "tcp", "sqlProd", "globalutils"]),
eq(logs.level, "30")
)
)
.returning({name: logs.message});
createLog(
"info",
"lst",
"logger",
`${delLogs.length} Server logs were just deleted that were older than 3 days`
);
} catch (error) {
createLog("error", "lst", "logger", `There was an error deleteing server logs. ${error}`);
}
try {
// clear all remaining logs ne to info.
const delLogs = await db
.delete(logs)
.where(
and(
lte(logs.created_at, sql`NOW() - INTERVAL '7 days'`),
inArray(logs.service, ["server", "tcp", "sqlProd", "globalutils"]),
ne(logs.level, "30")
)
)
.returning({name: logs.message});
createLog(
"info",
"lst",
"logger",
`${delLogs.length} Server logs were just deleted that were older than 7 days`
);
} catch (error) {
createLog("error", "lst", "logger", `There was an error deleteing server logs. ${error}`);
}
};