Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";const requireHook=require("../../../util/requireHook"),tracingUtil=require("../../tracingUtil"),constants=require("../../constants"),cls=require("../../cls");let isActive=!1;function instrumentWinston2(loggerModule){return"function"==typeof loggerModule.Logger&&shimLogMethod(loggerModule.Logger.prototype),loggerModule}function instrumentWinston3(createLogger){return"function"!=typeof createLogger?createLogger:(Object.keys(createLogger).forEach(k=>{instrumentedCreateLogger[k]=createLogger[k]}),instrumentedCreateLogger);function instrumentedCreateLogger(){var derivedLogger=createLogger.apply(this,arguments);return shimLevelMethod(derivedLogger,"error",!0),shimLevelMethod(derivedLogger,"warn",!1),shimLevelMethod(derivedLogger,"emerg",!0),shimLevelMethod(derivedLogger,"alert",!0),shimLevelMethod(derivedLogger,"crit",!0),shimLevelMethod(derivedLogger,"error",!0),shimLevelMethod(derivedLogger,"warning",!1),shimLogMethod(derivedLogger),derivedLogger}}function shimLevelMethod(derivedLogger,key,markAsError){var originalMethod=derivedLogger[key];"function"==typeof originalMethod&&(derivedLogger[key]=instrumentedLevelMethod(originalMethod,markAsError))}function instrumentedLevelMethod(originalMethod,markAsError){return function(message){if(cls.skipExitTracing({isActive:isActive,log:!1}))return originalMethod.apply(this,arguments);var originalArgs=new Array(arguments.length);for(let i=0;i<arguments.length;i++)originalArgs[i]=arguments[i];if(1===arguments.length&&arguments[0]&&"object"==typeof arguments[0]&&"string"==typeof arguments[0].message)message=arguments[0].message;else if(1<=arguments.length)for(let j=arguments.length-1;1<=j;j--)arguments[j]&&"object"==typeof arguments[j]&&"string"==typeof arguments[j].message&&(message+=arguments[j].message);return createSpan(this,originalMethod,originalArgs,message,markAsError)}}function shimLogMethod(derivedLogger){var originalMethod=derivedLogger.log;"function"==typeof originalMethod&&(derivedLogger.log=instrumentedLog(originalMethod))}function instrumentedLog(originalMethod){return function(level,message){if(1===arguments.length&&"string"==typeof arguments[0])return originalMethod.apply(this,arguments);if(1===arguments.length&&arguments[0]&&"object"==typeof arguments[0])"string"==typeof arguments[0].level&&(level=arguments[0].level),"string"==typeof arguments[0].message&&(message=arguments[0].message);else if(2===arguments.length&&arguments[1]&&"object"==typeof arguments[1]&&"string"==typeof arguments[1].message)message=arguments[1].message;else if(2<=arguments.length)for(let i=arguments.length-1;1<=i;i--)arguments[i]&&"object"==typeof arguments[i]&&"string"==typeof arguments[i].message&&(message+=arguments[i].message);if(cls.skipExitTracing({isActive:isActive,log:!1})||!levelIsTraced(level))return originalMethod.apply(this,arguments);var originalArgs=new Array(arguments.length);for(let j=0;j<arguments.length;j++)originalArgs[j]=arguments[j];return createSpan(this,originalMethod,originalArgs,message,levelIsError(level))}}function levelIsTraced(level){return levelIsError(level)||"warn"===level||"warning"===level}function levelIsError(level){return"error"===level||"emerg"===level||"alert"===level||"crit"===level}function createSpan(ctx,originalMethod,originalArgs,message,markAsError){return cls.ns.runAndReturn(()=>{var span=cls.startSpan("log.winston",constants.EXIT);span.stack=tracingUtil.getStackTrace(createSpan),span.data.log={message:message},markAsError&&(span.ec=1);try{return originalMethod.apply(ctx,originalArgs)}finally{span.d=Date.now()-span.ts,span.transmit()}})}exports.init=function(){requireHook.onFileLoad(/\/winston\/lib\/winston\/logger\.js/,instrumentWinston2),requireHook.onFileLoad(/\/winston\/lib\/winston\/create-logger\.js/,instrumentWinston3)},exports.activate=function(){isActive=!0},exports.deactivate=function(){isActive=!1};