Files
Cloudflare-DDNS-Updater/src/libs/Logger.ts
T
2026-07-01 12:36:15 +07:00

63 lines
1.2 KiB
TypeScript

import winston from "winston";
const levels = {
critical: 0,
error: 1,
alert: 2,
warn: 3,
info: 4,
http: 5,
debug: 6,
};
const level = () => {
const env = process.env.NODE_ENV || "development";
const isDevelopment = env === "development";
return isDevelopment ? "debug" : "info";
};
const colors = {
critical: "red",
error: "red",
alert: "red",
warn: "yellow",
info: "green",
http: "magenta",
debug: "white",
};
winston.addColors(colors);
const consoleFormat = winston.format.combine(
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}`),
);
const format = winston.format.combine(
winston.format.timestamp({
format: new Date().toISOString(),
}),
winston.format.json(),
);
const transports = [
new winston.transports.Console({
format: consoleFormat,
}),
new winston.transports.File({
filename: "logs/error.log",
level: "error",
}),
new winston.transports.File({ filename: "logs/all.log" }),
];
const Logger = winston.createLogger({
level: level(),
levels,
format,
transports,
});
export default Logger;