57 lines
1.0 KiB
JavaScript
57 lines
1.0 KiB
JavaScript
const winston = require('winston');
|
|
const httpContext = require("express-http-context");
|
|
|
|
const logLevel = 'trace';
|
|
|
|
const customLevels = {
|
|
levels: {
|
|
fatal: 0,
|
|
error: 1,
|
|
warning: 2,
|
|
info: 3,
|
|
debug: 4,
|
|
trace: 5
|
|
},
|
|
colors: {
|
|
trace: 'blue',
|
|
debug: 'white',
|
|
info: 'green',
|
|
warning: 'yellow',
|
|
error: 'red',
|
|
fatal: 'red'
|
|
}
|
|
};
|
|
|
|
const appendSessionId = winston.format(info => {
|
|
info.sessionId = httpContext.get("sessionId");
|
|
return info
|
|
});
|
|
|
|
|
|
const logger = winston.createLogger({
|
|
level: logLevel,
|
|
levels: customLevels.levels,
|
|
transports: [
|
|
new winston.transports.File({
|
|
filename: `${__base}/logs/all-logs.log`,
|
|
format: winston.format.combine(
|
|
appendSessionId(),
|
|
winston.format.json()
|
|
)
|
|
})
|
|
]
|
|
});
|
|
|
|
winston.addColors(customLevels.colors);
|
|
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
|
|
logger.add(new winston.transports.Console({
|
|
format: winston.format.combine(
|
|
winston.format.colorize(),
|
|
winston.format.simple()
|
|
)
|
|
}));
|
|
};
|
|
|
|
module.exports = logger; |