Comments (6)
Assign works just fine in scope of controller, but how to assign meta info in decorator or guard?
I simple cannot access logger instance from controller in decorator.
I'm not sure this library have tests for assignment in decorators. If that's not declared as a feature I believe you can open a feature request. But before opening it in the current library I would check if nestjs support loggers in custom decorators first
Existing example does not represent real usage, nobody will assign userId meta in each controller, agree?
- I'm not entitled to speak on behalf of every user of this library. But there is not only
userId
which you can add to logs. That's just a simple example to demonstrate a use case. - That assignment works not only in controllers but services too. So please don't think that everyone uses it the same way you do it.
I managed to pass userId meta in customProps of pinoHttp from request but i managed to get userId only in complete request message, all messages between request and response do not have that meta.
If you think there is a bug the first thing you can do is check tests of this library. If that doesn't help feel free to open a bug report with MINIMAL example repo
from nestjs-pino.
I didn't get the question. Are you going to use the logger as a transport for userId
between layers?
from nestjs-pino.
no.
I have controller that looks like this (simplified versions)
import { PinoLogger } from 'nestjs-pino';
import Auth from "./common/decorators/auth.decorator";
export class AppController {
constructor(private logger: PinoLogger) {}
@Get()
async getHealthcheck(@Auth() user) {
this.logger.info('test_from_controller');
return {
ok: true
}
}
}
and i have decorator that looks like this
import {
createParamDecorator,
ExecutionContext,
} from '@nestjs/common';
export default createParamDecorator(
async (data: string, ctx: ExecutionContext) => {
const user = { id: 1 };
return user;
},
);
i want to get test_from_controller message in logs with userId: 1 meta, but i dont want to "assign" userId in each controller method as there might be many of them, i want to assign that meta inside decorator or some another implementation where its assigned once.
from nestjs-pino.
Thank you!
from nestjs-pino.
i want to get test_from_controller message in logs with userId: 1 meta, but i dont want to "assign" userId in each controller method as there might be many of them, i want to assign that meta inside decorator or some another implementation where its assigned once.
The simplest solution is pass serializers
field in config:
serializers: {
req: (req) => {
// take it from session or headers or whatever where you keep it
// just be sure that logger middleware works after your session/auth middleware
// if it has to be done before getting access to that field
req.userId = req.raw.session?.user.id || null,
return req;
},
},
Does it help?
from nestjs-pino.
No response, closing
from nestjs-pino.
Related Issues (20)
- [QUESTION] Some logs are lost through pino-socket transport HOT 1
- [FEATURE REQUEST] Add support for pino-http's customAttributeKeys.err option HOT 3
- How to inject PinoLogger into TestingModule? HOT 2
- [QUESTION] How to assign additional attributes in context of Nest Microservice? HOT 1
- [QUESTION] Setting context on extended Logger HOT 2
- [BUG] Double `request completed` in my logs HOT 3
- Support pino-http 9.x HOT 1
- Pino Multistream / Multi-transports ? HOT 2
- [BUG] nestjs-pino fails to log HTTP requests with global prefix HOT 1
- [BUG] Pino logger unavailable in nestjs shutdown functions HOT 2
- [BUG] Source maps missed in the package
- [QUESTION] How to use the pino option `customLevels` HOT 1
- [BUG] "is not a function" when trying to extend PinoLogger HOT 2
- [BUG] Automatic logs showing 2 times HOT 1
- [BUG] Redacting modifies the body before it hits the resolver
- [QUESTION] How to import LoggerModule from another module HOT 8
- [BUG] - Custom Logs Placement Issue in pino-nestjs Package HOT 1
- [QUESTION] why are logs delayed/slow when using pino-pretty? HOT 3
- [BUG] Incorrect Cyrillic symbols in the log HOT 2
- [BUG] TRPC request log issue HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nestjs-pino.