feat(lstv2 move): moved lstv2 into this app to keep them combined and easier to maintain
This commit is contained in:
30
lstV2/server/services/logger/controller/clearLog.ts
Normal file
30
lstV2/server/services/logger/controller/clearLog.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
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, created_at: 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.",
|
||||
};
|
||||
}
|
||||
};
|
||||
42
lstV2/server/services/logger/controller/getLogs.ts
Normal file
42
lstV2/server/services/logger/controller/getLogs.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import { and, desc, eq, gte, 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(
|
||||
gte(
|
||||
logs.created_at,
|
||||
sql.raw(`NOW() - INTERVAL '${data.hours ?? "4"} hours'`)
|
||||
),
|
||||
inArray(logs.service, data.service),
|
||||
inArray(logs.level, data.level),
|
||||
eq(logs.checked, checked)
|
||||
)
|
||||
)
|
||||
.orderBy(desc(logs.created_at));
|
||||
|
||||
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,
|
||||
};
|
||||
}
|
||||
};
|
||||
65
lstV2/server/services/logger/controller/logCleanup.ts
Normal file
65
lstV2/server/services/logger/controller/logCleanup.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
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","notify", "logger", "serverupdater"]),
|
||||
eq(logs.level, "info")
|
||||
)
|
||||
)
|
||||
.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", "notify", "logger", "serverupdater"]),
|
||||
ne(logs.level, "info")
|
||||
)
|
||||
)
|
||||
.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}`
|
||||
);
|
||||
}
|
||||
};
|
||||
29
lstV2/server/services/logger/controller/streamLogs.ts
Normal file
29
lstV2/server/services/logger/controller/streamLogs.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import type {Context} from "hono";
|
||||
import {db} from "../../../../database/dbclient.js";
|
||||
import {and, eq, gt} from "drizzle-orm";
|
||||
import {streamSSE, streamText} from "hono/streaming";
|
||||
import {logs} from "../../../../database/schema/logs.js";
|
||||
|
||||
export async function streamLogs(c: Context) {
|
||||
let id = 0;
|
||||
let running = true;
|
||||
// c.header("Content-Type", "text/event-stream");
|
||||
// c.header("Cache-Control", "no-cache");
|
||||
// c.header("Connection", "keep-alive");
|
||||
|
||||
const getLogs = async () => {};
|
||||
return streamSSE(c, async (stream) => {
|
||||
while (running) {
|
||||
const message = `It is ${new Date().toISOString()}`;
|
||||
await stream.writeSSE({
|
||||
data: message,
|
||||
event: "time-update",
|
||||
id: String(id++),
|
||||
});
|
||||
await stream.sleep(1000);
|
||||
if (id === 5) {
|
||||
running = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user