Esta dependencia está pensada para ser utilizada en NestJs Starter, o cualquier proyecto que utilice una configuración centralizada, siguiendo la misma arquitectura del starter.
Glosario
📝 Requerimientos básicos🛠️ Instalar dependencia⚙️ Configuración👨💻️ Uso🖥 Logs📤 Commits📄 Changelog📜 License MIT
📝 Requerimientos básicos
- NestJs Starter
- Node.js v14.15.4 or higher (Download)
- NPM v6.14.10 or higher
- NestJS v8.2.0 or higher (Documentación)
🛠️ Instalar dependencia
npm install @tresdoce/nestjs-logger
⚙️ Configuración
Para utilizar este módulo, es necesario instanciarlo en la creación de la app
con su global interceptor y también en el módulo principal.
// ./src/main.ts
import { LoggingInterceptor, LoggingService } from '@tresdoce/nestjs-logger';
import { config } from './config';
async function bootstrap() {
const app = await NestFactory.create(AppModule, {
logger: new LoggingService('info', config()),
});
...
app.useGlobalInterceptors(new LoggingInterceptor(app.get<LoggingService>(LoggingService)));
...
}
// ./src/app.module.ts
import { LoggingModule } from '@tresdoce/nestjs-logger';
@Module({
...
imports: [
...
LoggingModule.register(),
...
],
...
})
👨💻️ Uso
Para poder hacer uso de algún metódo del servicio que se exporta mediante este módulo, debes inyectar el LoggingService en el constructor del componente donde vas a utilizarlo, definiendo el type como LoggingService.
Logs disponibles:
log
info
error
warn
debug
trace
// ./src/app.controller.ts
import { Inject, Injectable } from '@nestjs/common';
import { LoggingService } from '@tresdoce/nestjs-logger';
...
@Injectable()
export class AppService {
constructor(
@Inject(LoggingService) private logger: LoggingService,
) {}
getHello(): string {
this.logger.log('this is a log');
}
}
🖥 Logs
Los diferentes formatos de logging según el metódo que estés invocando.
- Tipo log
this.logger.log('This is a log message');
[1641844177933] INFO (24552 on VDINAME): This is a log message
- Tipo info
this.logger.info('This is a info message', 'This is an info context');
[1641844177933] INFO (24552 on VDINAME):
context: "This is an info context"
msg: {
"application_name": "nestjs-starter",
"application_version": "0.0.1",
"logger_name": "@tresdoce/nestjs-logger",
"logger_version": "0.0.1",
"@timestamp": 1646350040866,
"log_level": "INFO",
"log_type": "DEFAULT",
"message": "This is a info message"
}
- Tipo error
this.logger.error('This is a error message', 'This is an error context');
[1641844177936] ERROR (24552 on VDINAME):
context: "This is an error context"
msg: {
"application_name": "nestjs-starter",
"application_version": "0.0.1",
"logger_name": "@tresdoce/nestjs-logger",
"logger_version": "0.0.1",
"@timestamp": 1646350040866,
"log_level": "ERROR",
"log_type": "DEFAULT",
"message": "This is a error message"
"stack_trace": "This is a error message"
}
- Tipo warn
this.logger.warn('This is a warn message', 'This is an warn context');
[1641844177939] WARN (24552 on VDINAME):
context: "This is an warn context"
msg: {
"application_name": "nestjs-starter",
"application_version": "0.0.1",
"logger_name": "@tresdoce/nestjs-logger",
"logger_version": "0.0.1",
"@timestamp": 1646350040866,
"log_level": "WARN",
"log_type": "DEFAULT",
"message": "This is a warn message"
}
- Tipo debug
this.logger.debug('This is a debug message', 'This is an debug context');
[1641844177943] DEBUG (24552 on VDINAME):
context: "This is an debug context"
msg: {
"application_name": "nestjs-starter",
"application_version": "0.0.1",
"logger_name": "@tresdoce/nestjs-logger",
"logger_version": "0.0.1",
"@timestamp": 1646350040866,
"log_level": "DEBUG",
"log_type": "DEFAULT",
"message": "This is a debug message"
}
- Tipo verbose
this.logger.trace('This is a trace message', 'This is an trace context');
[1641844177946] TRACE (24552 on VDINAME):
context: "This is an trace context"
msg: {
"application_name": "nestjs-starter",
"application_version": "0.0.1",
"logger_name": "@tresdoce/nestjs-logger",
"logger_version": "0.0.1",
"@timestamp": 1646350040866,
"log_level": "TRACE",
"log_type": "DEFAULT",
"message": "This is a trace message"
}
📤 Commits
Para los mensajes de commits se toma como
referencia conventional commits
.
<type>[optional scope]: <description>
[optional body]
[optional footer]
- type: chore, docs, feat, fix, refactor (más comunes)
- scope: indica la página, componente, funcionalidad
- description: comienza en minúsculas y no debe superar los 72 caracteres.
📄 Changelog
All notable changes to this package will be documented in Changelog file.