Your IP : 216.73.216.91


Current Path : /var/node/inatote/Inatote-Backend/services/
Upload File :
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
}