diff --git a/lib/instrumentation/pino/pino.js b/lib/instrumentation/pino/pino.js index 1b5512fde6..fd5b1e9931 100644 --- a/lib/instrumentation/pino/pino.js +++ b/lib/instrumentation/pino/pino.js @@ -15,7 +15,6 @@ const { } = require('../../util/application-logging') const semver = require('semver') -// eslint-disable-next-line sonarjs/cognitive-complexity module.exports = function instrument(shim, tools) { const pinoVersion = shim.pkgVersion @@ -35,7 +34,20 @@ module.exports = function instrument(shim, tools) { const metrics = agent.metrics createModuleUsageMetric('pino', metrics) + wrapAsJson({ shim, tools }) +} + +/** + * Wraps `asJson` to properly decorate and forward logs + * + * @param {object} params to function + * @param {Shim} params.shim instance of shim + * @param {object} params.tools exported `pino/lib/tools` + */ +function wrapAsJson({ shim, tools }) { const symbols = shim.require('./lib/symbols') + const { agent } = shim + const { config, metrics } = agent shim.wrap(tools, 'asJson', function wrapJson(shim, asJson) { /** @@ -98,16 +110,14 @@ module.exports = function instrument(shim, tools) { * reformats error and assigns NR context data * to log line * - * @param logLine.logLine - * @param {object} logLine log line - * @param {object} metadata NR context data - * @param {string} chindings serialized string of all common log line data - * @param logLine.args - * @param logLine.agent - * @param logLine.chindings - * @param logLine.msg - * @param logLine.level - * @param logLine.logger + * @param {object} params to function + * @param {object} params.logLine log line + * @param {string} params.msg message of log line + * @param {object} params.agent instance of agent + * @param {string} params.chindings serialized string of all common log line data + * @param {string} params.level log level + * @param {object} params.logger instance of agent logger + * @returns {function} wrapped log formatter function */ function reformatLogLine({ logLine, msg, agent, chindings = '', level, logger }) { const metadata = agent.getLinkingMetadata()