Compare commits

...

5 Commits

3 changed files with 25 additions and 12 deletions

2
dist/package.json vendored
View File

@ -1,6 +1,6 @@
{ {
"name": "nestlogged", "name": "nestlogged",
"version": "3.0.0", "version": "3.1.0",
"description": "A NestJS Logger Decorator Library", "description": "A NestJS Logger Decorator Library",
"main": "lib/index.js", "main": "lib/index.js",
"repository": "https://git.psw.kr/p-sw/nestlogged", "repository": "https://git.psw.kr/p-sw/nestlogged",

View File

@ -1,6 +1,6 @@
{ {
"name": "nestlogged", "name": "nestlogged",
"version": "3.0.0", "version": "3.1.0",
"description": "A NestJS Logger Decorator Library", "description": "A NestJS Logger Decorator Library",
"main": "./dist/lib/index.js", "main": "./dist/lib/index.js",
"repository": "https://git.psw.kr/p-sw/nestlogged", "repository": "https://git.psw.kr/p-sw/nestlogged",

View File

@ -1,5 +1,6 @@
import { import {
Logger, Logger,
LogLevel,
Injectable, Injectable,
Controller, Controller,
ControllerOptions, ControllerOptions,
@ -124,22 +125,34 @@ interface FunctionMetadata {
} }
interface OverrideBuildOptions { interface OverrideBuildOptions {
callLogLevel: LogLevel | 'skip';
returnLogLevel: LogLevel | 'skip';
errorLogLevel: LogLevel | 'skip';
/** @deprecated use `callLogLevel: 'skip'` instead */
skipCallLog: boolean; skipCallLog: boolean;
/** @deprecated use `returnLogLevel: 'skip'` instead */
skipReturnLog: boolean; skipReturnLog: boolean;
/** @deprecated use `errorLogLevel: 'skip'` instead */
skipErrorLog: boolean; skipErrorLog: boolean;
} }
const defaultOverrideBuildOptions: OverrideBuildOptions = { const defaultOverrideBuildOptions: OverrideBuildOptions = {
callLogLevel: 'log',
returnLogLevel: 'log',
errorLogLevel: 'error',
skipCallLog: false, skipCallLog: false,
skipReturnLog: false, skipReturnLog: false,
skipErrorLog: false, skipErrorLog: false,
} }
class LoggedMetadata { class LoggedMetadata {
options: Partial<OverrideBuildOptions> options: OverrideBuildOptions
constructor(options?: Partial<OverrideBuildOptions>) { constructor(options?: Partial<OverrideBuildOptions>) {
this.options = options ?? defaultOverrideBuildOptions this.options = {
...defaultOverrideBuildOptions,
...(options ?? {}),
}
} }
updateOption(options: Partial<OverrideBuildOptions>) { updateOption(options: Partial<OverrideBuildOptions>) {
@ -176,13 +189,13 @@ function overrideBuild<F extends Array<any>, R>(
injectedLogger = args[metadatas.scopedLoggerInjectableParam]; injectedLogger = args[metadatas.scopedLoggerInjectableParam];
} }
if (!logged.options.skipCallLog) { if (logged.options.callLogLevel !== 'skip') {
injectedLogger.log( injectedLogger[logged.options.callLogLevel](
`${route ? "HIT HTTP" : "CALL"} ${route ? `${route.fullRoute} (${key})` : key `${route ? "HIT HTTP" : "CALL"} ${route ? `${route.fullRoute} (${key})` : key
} ${metadatas.loggedParams && metadatas.loggedParams.length > 0 } ${metadatas.loggedParams && metadatas.loggedParams.length > 0
? "WITH " + ? "WITH " +
metadatas.loggedParams.map( metadatas.loggedParams.map(
({name, index, include, exclude}) => ({ name, index, include, exclude }) =>
name + name +
"=" + "=" +
imObjectContainedLogSync(args[index], { imObjectContainedLogSync(args[index], {
@ -197,7 +210,7 @@ function overrideBuild<F extends Array<any>, R>(
try { try {
const r: R = originalFunction.call(this, ...args); const r: R = originalFunction.call(this, ...args);
if (!logged.options.skipReturnLog) { if (logged.options.returnLogLevel !== 'skip') {
if ( if (
originalFunction.constructor.name === 'AsyncFunction' || originalFunction.constructor.name === 'AsyncFunction' ||
(r && typeof r === 'object' && typeof r['then'] === 'function') (r && typeof r === 'object' && typeof r['then'] === 'function')
@ -222,7 +235,7 @@ function overrideBuild<F extends Array<any>, R>(
: "WITH " + r : "WITH " + r
: ""; : "";
injectedLogger.log( injectedLogger[logged.options.returnLogLevel](
route route
? `RETURNED HTTP ${route.fullRoute} (${key}) ${resultLogged}` ? `RETURNED HTTP ${route.fullRoute} (${key}) ${resultLogged}`
: `RETURNED ${key} ${resultLogged}` : `RETURNED ${key} ${resultLogged}`
@ -249,7 +262,7 @@ function overrideBuild<F extends Array<any>, R>(
: "WITH " + r : "WITH " + r
: ""; : "";
injectedLogger.log( injectedLogger[logged.options.returnLogLevel](
route route
? `RETURNED HTTP ${route.fullRoute} (${key}) ${resultLogged}` ? `RETURNED HTTP ${route.fullRoute} (${key}) ${resultLogged}`
: `RETURNED ${key} ${resultLogged}` : `RETURNED ${key} ${resultLogged}`
@ -260,8 +273,8 @@ function overrideBuild<F extends Array<any>, R>(
return r; return r;
} }
} catch (e) { } catch (e) {
if (!logged.options.skipErrorLog) { if (logged.options.errorLogLevel !== 'skip') {
injectedLogger.error( injectedLogger[logged.options.errorLogLevel](
`WHILE ${route ? `HTTP ${route.fullRoute} (${key})` : key} ERROR ${e}` `WHILE ${route ? `HTTP ${route.fullRoute} (${key})` : key} ERROR ${e}`
); );
} }