Good morning,
I am trying to log user input from user when using morgan and express. What I am specifically trying to log is noted in this image: (The user posted a request with an object that includes two key/value pairs "name" and "number")
How would I go about logging this? Custom tokens or is there a predefined method I could use?
CodePudding user response:
I found the solution, very simple:
app.use(express.json())
morgan.token("code", function getCode(req) {
return JSON.stringify(req.body);
});
app.use(morgan(':method :url :response-time :code'))
JSON.stringify(req.body)
was what I was looking for!
CodePudding user response:
Use this to write logs to a file:
// create a write stream (in append mode)
var accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), { flags: 'a' })
// setup the logger
app.use(morgan('combined', { stream: accessLogStream }))
You can find further references at the official Morgan documentation on how to write logs to a file