# nestjs-seq **Repository Path**: jasonsoft/nestjs-seq ## Basic Information - **Project Name**: nestjs-seq - **Description**: Seq logging module for Nest framework (node.js) 🐷 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-16 - **Last Updated**: 2023-04-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: Nestjs, seq, seq-logging, nestjs-seq ## README
# nestjs-seq Seq logging module for Nest framework (node.js) 🐷 [![NPM version][npm-img]][npm-url] [![NPM Downloads][downloads-image]][npm-url] [![License][license-img]][license-url] ### Installation ```bash $ npm i --save @jasonsoft/nestjs-seq ``` ### Quick Start > Once the installation process is complete, we can import the SeqLoggerModule into the root AppModule. ```js import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; /** * Import the SeqLoggerModule into the root AppModule * Added by Jason.Song (成长的小猪) on 2021/09/08 */ import { SeqLoggerModule } from '@jasonsoft/nestjs-seq'; @Module({ imports: [ /** * we can import the SeqLoggerModule. Typically, we'll import it into the root AppModule and control its behavior using the .forRoot() static method. * Added by Jason.Song (成长的小猪) on 2021/09/08 */ SeqLoggerModule.forRoot({ /** Customize a log name to facilitate log filtering */ serviceName: 'product-service', /** The HTTP endpoint address of the Seq server */ serverUrl: 'http://localhost:5341', /** The API Key to use when connecting to Seq */ apiKey: 'K7iUhZ9OSp6oX5EOCfPt', /** * Use module globally * When you want to use SeqLoggerModule in other modules, * you'll need to import it (as is standard with any Nest module). * Alternatively, declare it as a global module by setting the options object's isGlobal property to true, as shown below. * In that case, you will not need to import SeqLoggerModule in other modules once it's been loaded in the root module */ isGlobal: true, }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {} ``` ```js /** * Async configuration * When you need to pass module options asynchronously instead of statically, use the forRootAsync() method. * Like other factory providers, our factory function can be async and can inject dependencies through inject. * Added by Jason.Song (成长的小猪) on 2021/10/20 11:30:45 */ SeqLoggerModule.forRootAsync({ imports: [ConfigModule], useFactory: async (configService: ConfigService) => ({ /** Customize a log name to facilitate log filtering */ serviceName: configService.get('SEQ_SERVICE_NAME'), /** The HTTP endpoint address of the Seq server */ serverUrl: configService.get('SEQ_SERVER_URL'), /** The API Key to use when connecting to Seq */ apiKey: configService.get('SEQ_API_KEY'), }), inject: [ConfigService], }), ``` ```js import { Controller, Get } from '@nestjs/common'; import { AppService } from './app.service'; /** * import the SeqLogger * Added by Jason.Song (成长的小猪) on 2021/09/08 */ import { SeqLogger } from '@jasonsoft/nestjs-seq'; @Controller() export class AppController { constructor( private readonly appService: AppService, /** * Inject the SeqLogger logger * We can also inject SeqLogger into controllers and services, etc. * Added by Jason.Song (成长的小猪) on 2021/09/08 */ private readonly logger: SeqLogger, ) {} @Get() getHello(): string { this.logger.info('getHello - start'); const result = this.appService.getHello(); this.logger.info('getHello - call {service}', { service: 'appService', result, remark: 'Record the returned result', }); try { throw new Error('Wow, I reported an error'); } catch (error) { this.logger.error('Record the error', error); } return result; } } ``` ### Seq > Seq is a centralized log file with superpowers. Check out the logs we collected  ### Example [https://github.com/jasonsoft-net/nestjs-seq-example](https://github.com/jasonsoft-net/nestjs-seq-example) [npm-img]: https://img.shields.io/npm/v/@jasonsoft/nestjs-seq.svg?style=flat-square [npm-url]: https://npmjs.org/package/@jasonsoft/nestjs-seq [license-img]: https://img.shields.io/badge/license-MIT-green.svg?style=flat-square [license-url]: LICENSE [downloads-image]: https://img.shields.io/npm/dt/@jasonsoft/nestjs-seq.svg?style=flat-square [project-icon]: https://avatars.githubusercontent.com/u/22167571?v=4