| Current Path : /var/node/inatote/Inatote-Backend/services/ |
| Current File : //var/node/inatote/Inatote-Backend/services/logService.js |
import * as winston from 'winston'
const {combine, timestamp, label, prettyPrint , printf} = winston.format;
import * as DailyRotateFile from "winston-daily-rotate-file";
import fs from 'fs';
import path from 'path';
const __dirname = path.resolve();
const logDir = path.join(__dirname , "logs")
let logsFormat = winston.format.combine (
winston.format.timestamp({format: 'YYYY-MM-DD HH:mm:ss.SSSS'}),
winston.format.prettyPrint(),
winston.format.colorize(),
winston.format.label({ label: path.basename("logs") }),
)
let infoLoggerOptions = {
exitOnError: false,
level: 'info',
format: logsFormat,
transports: [
new winston.transports.DailyRotateFile({
filename: 'app_info.log',
dirname: `${logDir}`,
datePattern: "YYYY-MM-DD",
zippedArchive: true,
//maxSize: "1000m",
maxFiles: "7d",
level: "info",
format: winston.format.combine (
winston.format.printf (
info =>
`[${info.timestamp}] [${info.label}]: ${info.message}`
)
)
}),
],
}
let errorLoggerOptions= {
exitOnError: false,
level: 'error',
format: logsFormat,
transports: [
new winston.transports.DailyRotateFile({
filename: `app_error.log`,
dirname: `${logDir}`,
datePattern: "YYYY-MM-DD",
zippedArchive: true,
//maxSize: "1000m",
maxFiles: "7d",
level: "error",
handleExceptions: true,
format: winston.format.combine (
winston.format.printf (
info =>
`[${info.timestamp}] [${info.label}]: ${info.message}`
)
)
})
],
}
const infologger = winston.createLogger(infoLoggerOptions);
//to be used to log error messages
const errorlogger = winston.createLogger(errorLoggerOptions);
// export class appLogger{
// static defaultLevel = process.env.LOG_LEVEL;
// static logDir = 'logs';
// createLogDir(logDir);
// createLogDir(logDir: any) {
// if (!fs.existsSync(logDir)) {
// fs.mkdirSync(logDir);
// }
// }
// static logsFormat = winston.format.combine (
// winston.format.timestamp({format: 'YYYY-MM-DD HH:mm:ss.SSSS'}),
// winston.format.prettyPrint(),
// winston.format.colorize(),
// winston.format.label({ label: path.basename(process.mainModule.filename) }),
// )
// static infoLoggerOptions: winston.LoggerOptions = {
// exitOnError: false,
// level: 'info',
// format: appLogger.logsFormat,
// transports: [
// new DailyRotateFile({
// filename: 'app_info.log',
// dirname: `${appLogger.logDir}`,
// datePattern: "YYYY-MM-DD",
// zippedArchive: true,
// //maxSize: "1000m",
// maxFiles: "7d",
// level: "info",
// format: winston.format.combine (
// winston.format.printf (
// info =>
// `[${info.timestamp}] [${info.label}]: ${info.message}`
// )
// )
// }),
// ],
// }
// static errorLoggerOptions: winston.LoggerOptions = {
// exitOnError: false,
// level: 'error',
// format: appLogger.logsFormat,
// transports: [
// new DailyRotateFile({
// filename: `app_error.log`,
// dirname: `${appLogger.logDir}`,
// datePattern: "YYYY-MM-DD",
// zippedArchive: true,
// //maxSize: "1000m",
// maxFiles: "7d",
// level: "error",
// handleExceptions: true,
// format: winston.format.combine (
// winston.format.printf (
// info =>
// `[${info.timestamp}] [${info.label}]: ${info.message}`
// )
// )
// })
// ],
// }
// //to be used to log info messages
// static infologger = winston.createLogger(appLogger.infoLoggerOptions);
// //to be used to log error messages
// static errorlogger = winston.createLogger(appLogger.errorLoggerOptions);
let infoLoggerStream = {
write: (message) => {
message = message.replace(/\n$/, '');
appLogger.infologger.info(message)
}
}
let errorLoggerStream = {
write: (message) => {
message = message.replace(/\n$/, '');
appLogger.errorlogger.error(message)
}
}
export default {
infologger,
errorlogger
}