How to log user input with Morgan?

362 views Asked by At

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")

Image of logger

How would I go about logging this? Custom tokens or is there a predefined method I could use?

2

There are 2 answers

0
SupraCoder On BEST ANSWER

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!

0
Krushnal Patel On

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