FrontlineEducation / lapin

6 stars 13 forks source link

msg is empty on logger.log( 'error' ) #106

Open yamii opened 7 years ago

yamii commented 7 years ago

Lapin will log

For the error, our logger is integrated to slack in which we can receive real time errors on #error-logs channel. We noticed that msg is empty when it should not be. msg by the way is the msg sent to a certain service for it to consume.

See here where we set msg: https://github.com/sinet/lapin/blob/master/lib/req-res/status.js#L59

And the reason we do deep clone before is that lapin will hang. My hypothesis is - it's because lapin and logger are both using the msg object. So that to disrupt lapin from using the msg object we just cloned the msg object for logger's usage. I think we'll just look into deep merge using Object.assign.

I also read something about deep clone

Warning for Deep Clone

For deep cloning, we need to use other alternatives. This is because Object.assign() copies the property reference when the property being assigned is an object.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Merging_objects

Messages we sent to the consumers are not all objects.

sinet/logger BOT [1:52 PM]  
error
code
----------------
13-012

data
----------------
SequelizeUniqueConstraintError: Validation error
   at Query.formatError (/usr/src/app/node_modules/sequelize/lib/dialects/postgres/query.js:316:16)
   at .<anonymous> (/usr/src/app/node_modules/sequelize/lib/dialects/postgres/query.js:81:19)
   at emitOne (events.js:96:13)
   at emit (events.js:188:7)
   at Query.handleError (/usr/src/app/node_modules/pg/lib/query.js:125:8)
   at .<anonymous> (/usr/src/app/node_modules/pg/lib/client.js:172:26)
   at emitOne (events.js:96:13)
   at emit (events.js:188:7)
   at Socket.<anonymous> (/usr/src/app/node_modules/pg/lib/connection.js:113:12)
   at emitOne (events.js:96:13)
   at Socket.emit (events.js:188:7)
   at readableAddChunk (_stream_readable.js:177:18)
   at Socket.Readable.push (_stream_readable.js:135:10)
   at TCP.onread (net.js:542:20)

messageType
----------------
req-res.v1.mc-bit.get-by-id

msg
----------------

errorMsg
----------------
Validation error

service
----------------
microcredential-service

hostname
----------------
stmiami202-microcredential-service0
yamii commented 7 years ago

@sinet/chaos-monkey what do you think about this?

sydcanem commented 7 years ago

I'm still not sure on the implementation. I'll take a look at it tomorrow. cc @sinet/chaos-monkey