From b0e0256a682de2ff1eb497739b19ffe9aa87f7a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Vlas=C3=A1k?= Date: Wed, 27 May 2020 13:48:19 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8FUse=20pinojs=20hooks=20for=20?= =?UTF-8?q?adding=20loggerName=20to=20message?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.ts | 17 +++++++++++++++++ src/streams.ts | 4 ---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/index.ts b/src/index.ts index 6814ad5..e3365de 100644 --- a/src/index.ts +++ b/src/index.ts @@ -84,6 +84,21 @@ const initFormatters = (options: CosmasOptions & { loggerName?: string }) => { return formatters; }; +const initHooks = (options: CosmasOptions & { loggerName?: string }) => { + const hooks: { logMethod?: (inputArgs: any, method: any) => void } = {}; + if (!options.loggerName) return hooks; + + // always put logger name to message + hooks.logMethod = function(inputArgs, method) { + const text = inputArgs[inputArgs.length - 1]; + if (typeof text === 'string' || text instanceof String) { + inputArgs[inputArgs.length - 1] = `[${options.loggerName}] ${text}`; + } + return method.apply(this, inputArgs); + }; + return hooks; +}; + const defaultLogger = (options: CosmasOptions & { loggerName?: string } = {}): Cosmas => { serializers.disablePaths(options.disableFields); serializers.enablePaths(options.enableFields); @@ -101,6 +116,7 @@ const defaultLogger = (options: CosmasOptions & { loggerName?: string } = {}): C const streams = initLoggerStreams(defaultLevel, Object.assign({}, options, { messageKey })); const formatters = initFormatters(options); + const hooks = initHooks(options); options.ignoredHttpMethods = options.ignoredHttpMethods || ['OPTIONS']; const logger = (pino( @@ -109,6 +125,7 @@ const defaultLogger = (options: CosmasOptions & { loggerName?: string } = {}): C { messageKey, formatters, + hooks, base: {}, level: defaultLevel, serializers: serializers.serializers, diff --git a/src/streams.ts b/src/streams.ts index 85cc866..f3a150f 100644 --- a/src/streams.ts +++ b/src/streams.ts @@ -16,10 +16,6 @@ const getDefaultTransformStream = (options: CosmasOptions & { messageKey: string const obj = JSON.parse(chunk); const loggerName = options.loggerName; let res; - if (loggerName) { - // always put logger name to message - obj[options.messageKey] = `[${loggerName}] ${obj[options.messageKey]}`; - } if (loggerName && !options.pretty) { // do not put logger name field to pretty outputs obj[loggerNameKey] = loggerName;