2023-04-15 22:06:35 +02:00
|
|
|
import { createLogger, format, transports } from "winston"
|
|
|
|
import { config } from "./configuration"
|
2023-06-25 01:57:14 +02:00
|
|
|
import { v4 } from "uuid"
|
2023-06-27 20:19:42 +02:00
|
|
|
export function newRequestId() { return v4() }
|
2023-06-25 01:57:14 +02:00
|
|
|
export const noGuildId = 'NoGuildId'
|
2023-04-15 22:06:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
const printFn = format.printf(({ guildId, level, message, errorCode, requestId, timestamp: logTimestamp }: { [k: string]: string }) => {
|
2023-11-19 20:04:06 +01:00
|
|
|
return `[${guildId ?? ''}][${level.padStart(5, " ")}][${logTimestamp}][${errorCode ?? ''}][${requestId ?? ''}]:${message}`
|
2023-04-15 22:06:35 +02:00
|
|
|
})
|
|
|
|
|
|
|
|
const logFormat = format.combine(
|
2023-06-24 21:05:43 +02:00
|
|
|
format.timestamp(),
|
|
|
|
printFn
|
2023-04-15 22:06:35 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
const consoleTransports = [
|
2023-06-24 21:05:43 +02:00
|
|
|
new transports.Console({
|
2023-10-24 22:39:57 +02:00
|
|
|
format: logFormat,
|
|
|
|
silent: process.env.NODE_ENV === 'testing'
|
2023-06-24 21:05:43 +02:00
|
|
|
})
|
2023-04-15 22:06:35 +02:00
|
|
|
]
|
2023-04-16 02:02:15 +02:00
|
|
|
export const logger = createLogger({
|
2023-06-24 21:05:43 +02:00
|
|
|
level: config.bot.debug ? 'debug' : 'info',
|
|
|
|
format: logFormat,
|
|
|
|
silent: config.bot.silent,
|
|
|
|
transports: consoleTransports
|
2023-04-15 22:06:35 +02:00
|
|
|
})
|