Files
Cloudflare-DDNS-Updater/src/libs/Logger.ts
T

63 lines
1.2 KiB
TypeScript
Raw Normal View History

2026-07-01 12:36:05 +07:00
import winston from "winston";
2022-03-06 16:40:17 +07:00
const levels = {
2026-07-01 12:36:05 +07:00
critical: 0,
error: 1,
alert: 2,
warn: 3,
info: 4,
http: 5,
debug: 6,
2022-03-06 16:40:17 +07:00
};
const level = () => {
2026-07-01 12:36:05 +07:00
const env = process.env.NODE_ENV || "development";
const isDevelopment = env === "development";
return isDevelopment ? "debug" : "info";
2022-03-06 16:40:17 +07:00
};
const colors = {
2026-07-01 12:36:05 +07:00
critical: "red",
error: "red",
alert: "red",
warn: "yellow",
info: "green",
http: "magenta",
debug: "white",
2022-03-06 16:40:17 +07:00
};
winston.addColors(colors);
const consoleFormat = winston.format.combine(
2026-07-01 12:36:05 +07:00
winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss:ms" }),
winston.format.colorize({ all: true }),
winston.format.printf((info) => `[${info.timestamp}] [${info.level}] ${info.message}`),
2022-03-06 16:40:17 +07:00
);
const format = winston.format.combine(
2026-07-01 12:36:05 +07:00
winston.format.timestamp({
format: new Date().toISOString(),
}),
winston.format.json(),
);
2022-03-06 16:40:17 +07:00
const transports = [
2026-07-01 12:36:05 +07:00
new winston.transports.Console({
format: consoleFormat,
}),
new winston.transports.File({
filename: "logs/error.log",
level: "error",
}),
new winston.transports.File({ filename: "logs/all.log" }),
2022-03-06 16:40:17 +07:00
];
const Logger = winston.createLogger({
2026-07-01 12:36:05 +07:00
level: level(),
levels,
format,
transports,
2022-03-06 16:40:17 +07:00
});
2026-07-01 12:36:05 +07:00
export default Logger;