Add rotating log files (#280)
All checks were successful
Deploy To Stage / build (push) Successful in 9s
Deploy To Stage / deploy (push) Successful in 16s

- Adding rotating log files to the app.
- This uses the `winston-daily-rotate-file` package to rotate the log files before they get too big.
- The log files will also now be saved into the `$DATA_DIR/logs` folder

#247

Reviewed-on: #280
Reviewed-by: VylpesTester <tester@vylpes.com>
Co-authored-by: Ethan Lane <ethan@vylpes.com>
Co-committed-by: Ethan Lane <ethan@vylpes.com>
This commit is contained in:
Ethan Lane 2024-06-29 18:28:28 +01:00 committed by Vylpes
parent 1a4993b091
commit 5751694018
3 changed files with 45 additions and 6 deletions

View file

@ -1,4 +1,6 @@
import path from "path";
import { Logger, createLogger, format, transports } from "winston";
import DailyRotateFile from "winston-daily-rotate-file";
import DiscordTransport from "winston-discord-transport";
export default class AppLogger {
@ -20,12 +22,21 @@ export default class AppLogger {
customFormat,
),
defaultMeta: { service: "bot" },
transports: [
new transports.File({ filename: "priority.log", level: "warn" }),
new transports.File({ filename: "combined.log" }),
],
transports: [],
});
if (process.env.DATA_DIR) {
const logDir = path.join(process.env.DATA_DIR, "logs");
logger.add(new DailyRotateFile({
filename: "bot-%DATE%.log",
dirname: logDir,
datePattern: "YYYY-MM-DD-HH",
maxSize: "20m",
maxFiles: "14d",
}));
}
if (outputToConsole) {
logger.add(new transports.Console({
format: format.combine(
@ -75,4 +86,4 @@ export default class AppLogger {
public static LogSilly(label: string, message: string) {
AppLogger.Logger.silly({ label, message });
}
}
}