Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 67b51c0

Browse files
authored
Merge pull request #42 from AckeeCZ/feat/use-pino-hooks
♻️ Use pinojs hooks for adding loggerName to message
2 parents 394addd + b0e0256 commit 67b51c0

2 files changed

Lines changed: 17 additions & 4 deletions

File tree

src/index.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,21 @@ const initFormatters = (options: CosmasOptions & { loggerName?: string }) => {
8484
return formatters;
8585
};
8686

87+
const initHooks = (options: CosmasOptions & { loggerName?: string }) => {
88+
const hooks: { logMethod?: (inputArgs: any, method: any) => void } = {};
89+
if (!options.loggerName) return hooks;
90+
91+
// always put logger name to message
92+
hooks.logMethod = function(inputArgs, method) {
93+
const text = inputArgs[inputArgs.length - 1];
94+
if (typeof text === 'string' || text instanceof String) {
95+
inputArgs[inputArgs.length - 1] = `[${options.loggerName}] ${text}`;
96+
}
97+
return method.apply(this, inputArgs);
98+
};
99+
return hooks;
100+
};
101+
87102
const defaultLogger = (options: CosmasOptions & { loggerName?: string } = {}): Cosmas => {
88103
serializers.disablePaths(options.disableFields);
89104
serializers.enablePaths(options.enableFields);
@@ -101,6 +116,7 @@ const defaultLogger = (options: CosmasOptions & { loggerName?: string } = {}): C
101116
const streams = initLoggerStreams(defaultLevel, Object.assign({}, options, { messageKey }));
102117

103118
const formatters = initFormatters(options);
119+
const hooks = initHooks(options);
104120

105121
options.ignoredHttpMethods = options.ignoredHttpMethods || ['OPTIONS'];
106122
const logger = (pino(
@@ -109,6 +125,7 @@ const defaultLogger = (options: CosmasOptions & { loggerName?: string } = {}): C
109125
{
110126
messageKey,
111127
formatters,
128+
hooks,
112129
base: {},
113130
level: defaultLevel,
114131
serializers: serializers.serializers,

src/streams.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@ const getDefaultTransformStream = (options: CosmasOptions & { messageKey: string
1616
const obj = JSON.parse(chunk);
1717
const loggerName = options.loggerName;
1818
let res;
19-
if (loggerName) {
20-
// always put logger name to message
21-
obj[options.messageKey] = `[${loggerName}] ${obj[options.messageKey]}`;
22-
}
2319
if (loggerName && !options.pretty) {
2420
// do not put logger name field to pretty outputs
2521
obj[loggerNameKey] = loggerName;

0 commit comments

Comments
 (0)