create-new-express-app
Version:
A CLI tool to create a TypeScript Express application with best practices
54 lines (44 loc) • 1.15 kB
text/typescript
import winston from "winston";
// import * as path from "path";
// import * as fs from "fs";
// const logDir = path.join(__dirname, "../utils/logs");
const levels = {
error: 0,
warn: 1,
info: 2,
http: 3,
debug: 4,
};
const level = () => {
const env = process.env.NODE_ENV || "development";
const isDevelopment = env === "development";
return isDevelopment ? "debug" : "warn";
};
const colors = {
error: "red",
warn: "yellow",
info: "green",
http: "bold cyan",
debug: "white",
};
winston.addColors(colors);
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) => `${info.timestamp} ${info.level}: ${info.message}`)
);
const transports = [
new winston.transports.Console(),
// new winston.transports.File({
// filename: "./src/v1/utils/logs/error.log",
// level: "error",
// }),
// new winston.transports.File({ filename: "./src/v1/utils/logs/all.log" }),
];
const logger = winston.createLogger({
level: level(),
levels,
format,
transports,
});
export default logger;