implementação do logger
This commit is contained in:
22
src/Log/logger.decorator.ts
Normal file
22
src/Log/logger.decorator.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { ILogger } from './ILogger';
|
||||
|
||||
export function LogExecution(label?: string) {
|
||||
return function (
|
||||
target: any,
|
||||
propertyKey: string,
|
||||
descriptor: PropertyDescriptor
|
||||
) {
|
||||
const original = descriptor.value;
|
||||
descriptor.value = async function (...args: any[]) {
|
||||
const logger: ILogger = this.logger;
|
||||
const context = label || `${target.constructor.name}.${propertyKey}`;
|
||||
const start = Date.now();
|
||||
logger.log(`Iniciando: ${context} | ${JSON.stringify({ args })}`);
|
||||
const result = await original.apply(this, args);
|
||||
const duration = Date.now() - start;
|
||||
logger.log(`Finalizado: ${context} em ${duration}ms`);
|
||||
return result;
|
||||
};
|
||||
return descriptor;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user