I am trying to create the log file based on the dates so that each datewise can store the logs
I tried following configs but when I add the date pattern yyyy-MM-dd it is only creating the app.log file not the date file.
Note: but when I use yyyy-MM-dd-hh-mm it is creating app.log and yyyy-mm-dd-hh-mm.log file.
How I can have only one log file based on date and each day it will create a new log file?
import {
configure,
getLogger
} from 'log4js'
import config from '../config'
const fs = require('fs');
const path = require('path');
export function getDefaultLogger() {
const myLogger = getLogger()
const logDirectory = path.join(__dirname, 'logs');
if (!fs.existsSync(logDirectory)) {
fs.mkdirSync(logDirectory)
}
const appenderData = [{
name: 'out',
type: 'stdout'
}, {
name: 'app',
type: 'dateFile'
}]
const appendersVal = appenderData.reduce((acc, appender) => {
acc[appender.name] = {
type: appender.type,
filename: path.join(logDirectory, `${appender.name}.log`),
pattern: 'yyyy-MM-dd',
keepFileExt: true
};
return acc;
}, {});
if (appendersVal) {
console.log("inside appendersVal", appendersVal)
// Allow for single or multiple appenders
configure({
appenders: appendersVal,
categories: {
default: {
appenders: appenderData.map(a => a.name),
level: 'info'
}
}
})
}
myLogger.level = config.logger.level
return myLogger
}
For usage of the logger in my app files I am using
let logger = getDefaultLogger()
logger.info("test")
log4js version: 6.9.1