I want to log into some file when I only get a error response from client. And I want to print messages on terminal when I get the others. So, I'm using express
and log4js
like that.
Here is some part of my code.
const log4js = require('log4js'),
express = require('express'),
app = express();
log4js.configure({
appenders: [
{type: 'console'},
{type: 'file', filename: 'logs/logs.log', category: 'file'}
]
});
const fileLogger = log4js.getLogger('file'),
consoleLogger = log4js.getLogger('console');
fileLogger.setLevel('ERROR');
app.enable('trust proxy');
app.use(log4js.connectLogger(fileLogger, { format: ':method :url' }));
app.use(log4js.connectLogger(consoleLogger, { level: 'auto', format: ':method :url' }));
I expected that error response is filtered by fileLogger then a log message is written into logs.log
and the others are filtered by consoleLogger then the message is printed on terminal but not.
Is there a good way to solve it using connectLogger
?
I referred to this and I knew that It's impossible to use
connectLogger
multiple times for express routing.