* chore: fix lint * fix: constants check:lint command * chore(lint): permit unused vars which begin w/ _ * chore: rm dead code * fix(lint): more lint fixes to constants pkg * fix(lint): lint the live server - fix lint issues * chore: improve clean script * fix(lint): more lint * chore: set live server process title * chore(deps): update to turbo@2.5.5 * chore(live): target node22 * fix(dev): add missing ui pkg dependency * fix(dev): lint decorators * fix(dev): lint space app * fix(dev): address lint issues in types pkg * fix(dev): lint editor pkg * chore(dev): moar lint * fix(dev): live server exit code * chore: address PR feedback * fix(lint): better TPageExtended type * chore: refactor * chore: revert most live server changes * fix: few more lint issues * chore: enable ci checks Ensure we can build + confirm that lint is not getting worse. * chore: address PR feedback * fix: web lint warning added to package.json * fix: ci:lint command --------- Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
66 lines
1.6 KiB
TypeScript
66 lines
1.6 KiB
TypeScript
import path from "path";
|
|
import winston from "winston";
|
|
import DailyRotateFile from "winston-daily-rotate-file";
|
|
|
|
// Define log levels
|
|
const levels = {
|
|
error: 0,
|
|
warn: 1,
|
|
info: 2,
|
|
http: 3,
|
|
debug: 4,
|
|
};
|
|
|
|
// Define colors for each level
|
|
const colors = {
|
|
error: "red",
|
|
warn: "yellow",
|
|
info: "green",
|
|
http: "magenta",
|
|
debug: "white",
|
|
};
|
|
|
|
// Tell winston about our colors
|
|
winston.addColors(colors);
|
|
|
|
// Custom format for logging
|
|
const format = winston.format.combine(
|
|
winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss:ms" }),
|
|
winston.format.colorize({ all: true }),
|
|
winston.format.printf(
|
|
(info: winston.Logform.TransformableInfo) => `[${info?.timestamp}] ${info.level}: ${info.message}`
|
|
)
|
|
);
|
|
|
|
// Define which transports to use
|
|
const transports = [
|
|
// Console transport
|
|
new winston.transports.Console(),
|
|
|
|
// Rotating file transport for errors
|
|
new DailyRotateFile({
|
|
filename: path.join(process.cwd(), "logs", "error-%DATE%.log"),
|
|
datePattern: "YYYY-MM-DD",
|
|
zippedArchive: true,
|
|
maxSize: process.env.LOG_MAX_SIZE || "20m",
|
|
maxFiles: process.env.LOG_RETENTION || "7d",
|
|
level: "error",
|
|
}),
|
|
|
|
// Rotating file transport for all logs
|
|
new DailyRotateFile({
|
|
filename: path.join(process.cwd(), "logs", "combined-%DATE%.log"),
|
|
datePattern: "YYYY-MM-DD",
|
|
zippedArchive: true,
|
|
maxSize: process.env.LOG_MAX_SIZE || "20m",
|
|
maxFiles: process.env.LOG_RETENTION || "7d",
|
|
}),
|
|
];
|
|
|
|
// Create the logger
|
|
export const logger = winston.createLogger({
|
|
level: process.env.LOG_LEVEL || "info",
|
|
levels,
|
|
format,
|
|
transports,
|
|
});
|