nestjs-cloud-logging
TypeScript icon, indicating that this package has built-in type declarations

1.0.7 • Public • Published

nestjs-cloud-logging

Extended default NestJS logger with Winston transporter for Google Cloud Logging.

1. Replace default logger when bootstraping

// main.ts
import {WinstonLoggerServiceApp} from 'nestjs-cloud-logging';

async function bootstrap() {
    const app = await NestFactory.create(AppModule);
    app.useLogger(app.get(WinstonLoggerServiceApp));

    await app.listen(3000);
}

bootstrap();

2. Import logger module into root module and registering it globally

// app.module.ts
import {WinstonLoggerModule} from 'nestjs-cloud-logging';

@Module({
    imports: [
        WinstonLoggerModule.forRoot({
            isGlobal: true,
            projectId: "google-cloud-project-id",
            keyFilename: "path-to-key-filename",
        }),
    ],
    controllers: [],
    providers: [],
})
export class AppModule {
}

3. How to inject logger anywhere

import {Logger, LoggerService} from 'nestjs-cloud-logging';

@Injectable()
export class UserService {
    constructor(@Logger() private readonly logger: LoggerService) {
    }

    getUser(id: number): Promise<User> {
        this.logger.log('Your logger message');
        return this.userRepository.getUser(id);
    }
}

4. Google Cloud Logging - this is available metadata in every subsequental log insert for request

img.png

Package Sidebar

Install

npm i nestjs-cloud-logging

Weekly Downloads

30

Version

1.0.7

License

MIT

Unpacked Size

239 kB

Total Files

42

Last publish

Collaborators

  • budiselic