'How to log user input with Morgan?
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?
Solution 1:[1]
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!
Solution 2:[2]
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
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | SupraCoder |
| Solution 2 | Krushnal Patel |

