-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to add co-relationId to pino logger with middy in serverless application using cls-proxify #20
Comments
I guess it should be something along these lines import pino from "pino";
import { clsProxify, clsProxifyNamespace } from 'cls-proxify'
const logger = pino({ name: 'viewLinc', level: process.env.STAGE == 'prod' ? 'info' : 'debug' });
// wrap your logge with a proxy to get the request ID from the CLS
const loggerCls = clsProxify('requestId', logger)
export default loggerCls; export default handler => middy(handler).use([
() => {
// Set `requestId` in CLS to `requestId/co-relationId` so proxified pino picks it up
setClsProxyValue('requestId', somehowGetValueOfRequestId-co-relationId())
},
loggerMiddleware({ logger: logger }),
//.....other middleware
httpErrorHandler(), ]); |
@aigoncharov 1.
I also tried
and in this case, it throws :
will have the is in the middleware and not where the logger object is created? |
@s1mrankaur I suggest you use https://github.com/aigoncharov/cls-proxify#any-other-framework-or-library as an example.
|
@aigoncharov If it was working, wherever I say
will have the requestId although Can you confirm this please? |
@s1mrankaur yes, this is correct. |
@aigoncharov Changed the middy handler as follows according to the steps in last message:
In pino-logger.ts:
Added all 3 steps, Still nothing in traces though. |
This looks great! You seem to be on the right track. |
@aigoncharov next() is deprecated in middy and the recommended way to do it is:
|
Just to post the solution, https://www.npmjs.com/package/pino-lambda worked well for us. Thanks for your support. |
Our
logger.js
that usespino
library looks like this:When using logger, we simply say
we are also using middy in the application. Middy generates traces with requestId in traces in the ServiceLens but we do not see our custom logs there. For that matter, we will need to add our
requestId/co-relationId
to thelogger
object.Common-middleware.js
in our application looks like this:How can I centrally add
co-relationId
in my custom logs using cls-proxify so that they will show up in the traces without having to leave it up to the developers to do it?The text was updated successfully, but these errors were encountered: