Skip to content

Commit

Permalink
Adding service Logs
Browse files Browse the repository at this point in the history
  • Loading branch information
ecaminero committed Oct 2, 2019
1 parent d15efd8 commit a80bfcf
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 11 deletions.
2 changes: 1 addition & 1 deletion src/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Module , NestModule, MiddlewareConsumer } from '@nestjs/common';
import { HelloController } from './application/controller/hello.controller';
import { HelloController } from './application/controllers/hello.controller';
import { UserService } from './domain/services/user.service';
import { DatabaseModule } from './infrastructure/database/database.module';
import { modelProviders } from './infrastructure/models';
Expand Down
2 changes: 1 addition & 1 deletion src/application/__test__/hello.controller.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Test } from '@nestjs/testing';
import { Model } from 'mongoose';
import { has, cloneDeep } from 'lodash';
import { TestingModule } from '@nestjs/testing/testing-module';
import { HelloController } from '@application/controller/hello.controller';
import { HelloController } from '@application/controllers/hello.controller';
import { UserService } from '@domain/services/user.service';
import { UserModel } from '@infrastructure/models/User.model';
import { User } from '@domain/entities/User';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { LoggerService, Context } from '@domain/services/logger.service';
import { Controller, Get, Post, Body, UseInterceptors } from '@nestjs/common';
import { UserService } from '@domain/services/user.service';
import { CreateUserDto } from '@application/dto/create-user.dto';
Expand All @@ -8,20 +9,27 @@ import { LoggingInterceptor } from '@application/interceptors/logging.intercepto
@Controller()
@UseInterceptors(LoggingInterceptor)
export class HelloController {
private Log: LoggerService = new LoggerService('createOperation');
constructor(private readonly userService: UserService) {}

@Get('/hello')
get(): string {
const context: Context = { module: 'HelloController', method: 'get' };
this.Log.logger('Hello World!', context);
return 'Hello World!';
}

@Get('/all')
async getAll(): Promise<User[]> {
const context: Context = { module: 'HelloController', method: 'getAll' };
this.Log.logger('Hello World!', context);
return await this.userService.find();
}

@Post('/')
async create(@Body() user: CreateUserDto): Promise<User> {
const context: Context = { module: 'HelloController', method: 'create' };
this.Log.logger(user, context);
return await this.userService.create(user);
}
}
3 changes: 2 additions & 1 deletion src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ dotenv.config();
export const DB_PROVIDER = 'DbConnectionToken';
export const USER_MODEL_PROVIDER = 'UserModelProvider';
export const SERVICE = 'DB_MONGO_SERVICE';
export const APP_NAME = process.env.APP_NAME || 'mongo.database.service';
export const APP_NAME = process.env.APP_NAME || 'clean.architecture';
export const DATABASE_SERVICE = process.env.DATABASE_SERVICE || 'DATABASE_SERVICE';
export const APP_PORT = process.env.PORT || 4000;
export const APP_HOST = process.env.APP_HOST || '0.0.0.0';
35 changes: 27 additions & 8 deletions src/domain/services/logger.service.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,28 @@
import { LoggerService } from '@nestjs/common';

export class MyLogger implements LoggerService {
log(message: string) {}
error(message: string, trace: string) {}
warn(message: string) {}
debug(message: string) {}
verbose(message: string) {}
import { Logger } from '@nestjs/common';
import { APP_HOST } from '@constants';

export class Context {
module: string;
method: string;
}

// tslint:disable-next-line: max-classes-per-file
export class LoggerService extends Logger {
logger(message: any, context?: Context) {
const standard = {server: APP_HOST, type: 'INFO', time: Date.now()};
const data = {...standard, ...context, message};
super.log(data);
}

err(message: any, context: Context) {
const standard = {server: APP_HOST, type: 'ERROR', time: Date.now()};
const data = {...standard, ...context, message};
super.error(data);
}

warning(message: any, context: Context) {
const standard = {server: APP_HOST, type: 'WARNING', time: Date.now()};
const data = {...standard, ...context, message};
super.warn(data);
}
}

0 comments on commit a80bfcf

Please sign in to comment.