generated from nhcarrigan/template
feat: use our new logging server
This commit is contained in:
@ -34,6 +34,7 @@
|
|||||||
"typescript": "5.4.5"
|
"typescript": "5.4.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@nhcarrigan/logger": "1.0.0",
|
||||||
"@octokit/rest": "20.1.1",
|
"@octokit/rest": "20.1.1",
|
||||||
"@prisma/client": "5.13.0",
|
"@prisma/client": "5.13.0",
|
||||||
"discord.js": "14.15.2",
|
"discord.js": "14.15.2",
|
||||||
|
8
pnpm-lock.yaml
generated
8
pnpm-lock.yaml
generated
@ -8,6 +8,9 @@ importers:
|
|||||||
|
|
||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
'@nhcarrigan/logger':
|
||||||
|
specifier: 1.0.0
|
||||||
|
version: 1.0.0
|
||||||
'@octokit/rest':
|
'@octokit/rest':
|
||||||
specifier: 20.1.1
|
specifier: 20.1.1
|
||||||
version: 20.1.1
|
version: 20.1.1
|
||||||
@ -167,6 +170,9 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: '>=8'
|
eslint: '>=8'
|
||||||
|
|
||||||
|
'@nhcarrigan/logger@1.0.0':
|
||||||
|
resolution: {integrity: sha512-2e19Bie+ZKb6yKPKjhawqsENkhHatYkvBAmFZx9eToOXdOca+CYi51tldRMtejg6e0+4hOOf2bo5zdBQKmH0dw==}
|
||||||
|
|
||||||
'@nhcarrigan/prettier-config@3.2.0':
|
'@nhcarrigan/prettier-config@3.2.0':
|
||||||
resolution: {integrity: sha512-AZOzwDTZfRiEinjUmqRj4gqZLYpLANhN1iMIsESxeuln+/BjGI06pINQsePIZ/I2HoPd+HGjNqu0S+Os9nHzuw==}
|
resolution: {integrity: sha512-AZOzwDTZfRiEinjUmqRj4gqZLYpLANhN1iMIsESxeuln+/BjGI06pINQsePIZ/I2HoPd+HGjNqu0S+Os9nHzuw==}
|
||||||
engines: {node: '20', pnpm: '8'}
|
engines: {node: '20', pnpm: '8'}
|
||||||
@ -2398,6 +2404,8 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
|
'@nhcarrigan/logger@1.0.0': {}
|
||||||
|
|
||||||
'@nhcarrigan/prettier-config@3.2.0(prettier@3.2.5)':
|
'@nhcarrigan/prettier-config@3.2.0(prettier@3.2.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
prettier: 3.2.5
|
prettier: 3.2.5
|
||||||
|
1
prod.env
1
prod.env
@ -11,3 +11,4 @@ GITHUB_WEBHOOK_SECRET="op://Environment Variables - Naomi/Mod Bot/github_webhook
|
|||||||
PATREON_WEBHOOK_SECRET="op://Environment Variables - Naomi/Mod Bot/patreon_webhook_secret"
|
PATREON_WEBHOOK_SECRET="op://Environment Variables - Naomi/Mod Bot/patreon_webhook_secret"
|
||||||
KOFI_WEBHOOK_SECRET="op://Environment Variables - Naomi/Mod Bot/kofi_webhook_secret"
|
KOFI_WEBHOOK_SECRET="op://Environment Variables - Naomi/Mod Bot/kofi_webhook_secret"
|
||||||
GITHUB_TOKEN="op://Environment Variables - Naomi/Mod Bot/github_pat"
|
GITHUB_TOKEN="op://Environment Variables - Naomi/Mod Bot/github_pat"
|
||||||
|
LOG_TOKEN="op://Environment Variables - Naomi/Alert Server/api_auth"
|
@ -14,7 +14,7 @@ export const validateEnv = (): ExtendedClient["env"] => {
|
|||||||
!process.env.DEBUG_HOOK ||
|
!process.env.DEBUG_HOOK ||
|
||||||
!process.env.MONGO_URI
|
!process.env.MONGO_URI
|
||||||
) {
|
) {
|
||||||
logHandler.log("error", "MIssing environment variables!");
|
logHandler.log("warn", "Missing environment variables!");
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,29 +13,15 @@ import { logHandler } from "./logHandler";
|
|||||||
* @returns {string} A unique ID to use in logs.
|
* @returns {string} A unique ID to use in logs.
|
||||||
*/
|
*/
|
||||||
export const errorHandler = async (
|
export const errorHandler = async (
|
||||||
bot: ExtendedClient,
|
_bot: ExtendedClient,
|
||||||
context: string,
|
context: string,
|
||||||
err: unknown
|
err: unknown
|
||||||
) => {
|
) => {
|
||||||
const id = SnowflakeUtil.generate();
|
const id = SnowflakeUtil.generate();
|
||||||
const error = err as Error;
|
const error = err as Error;
|
||||||
logHandler.log("error", `${context}: ${error.message}`);
|
void logHandler.error(
|
||||||
logHandler.log("error", JSON.stringify(error.stack, null, 2));
|
context,
|
||||||
if (bot.env.debugHook) {
|
error
|
||||||
await bot.env.debugHook.send({
|
)
|
||||||
content: `**${id}\n${context}: ${error.message}`,
|
|
||||||
avatarURL:
|
|
||||||
bot.user?.displayAvatarURL() ??
|
|
||||||
"https://cdn.nhcarrigan.com/avatars/nhcarrigan.png",
|
|
||||||
username: bot.user?.username ?? "Mod bot"
|
|
||||||
});
|
|
||||||
await bot.env.debugHook.send({
|
|
||||||
content: "```\n" + JSON.stringify(error.stack, null, 2) + "\n```",
|
|
||||||
avatarURL:
|
|
||||||
bot.user?.displayAvatarURL() ??
|
|
||||||
"https://cdn.nhcarrigan.com/avatars/nhcarrigan.png",
|
|
||||||
username: bot.user?.username ?? "Mod bot"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return id;
|
return id;
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
import { createLogger, format, transports, config } from "winston";
|
import { Logger } from "@nhcarrigan/logger";
|
||||||
|
|
||||||
const { combine, timestamp, colorize, printf } = format;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Standard log handler, using winston to wrap and format
|
* Standard log handler, using winston to wrap and format
|
||||||
@ -9,16 +7,7 @@ const { combine, timestamp, colorize, printf } = format;
|
|||||||
* @param {string} level - The log level to use.
|
* @param {string} level - The log level to use.
|
||||||
* @param {string} message - The message to log.
|
* @param {string} message - The message to log.
|
||||||
*/
|
*/
|
||||||
export const logHandler = createLogger({
|
export const logHandler = new Logger(
|
||||||
levels: config.npm.levels,
|
"Celestine",
|
||||||
level: "silly",
|
process.env.LOG_TOKEN ?? ""
|
||||||
transports: [new transports.Console()],
|
)
|
||||||
format: combine(
|
|
||||||
timestamp({
|
|
||||||
format: "YYYY-MM-DD HH:mm:ss"
|
|
||||||
}),
|
|
||||||
colorize(),
|
|
||||||
printf((info) => `${info.level}: ${[info.timestamp]}: ${info.message}`)
|
|
||||||
),
|
|
||||||
exitOnError: false
|
|
||||||
});
|
|
||||||
|
Reference in New Issue
Block a user