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    
@supertenant/collector / src / logger.js
Size: Mime:
// (c) Copyright 2023 Supertenant Ltd. - all rights reserved.
// See LICENSE file in project root for license terms.
"use strict";let threadId=0;try{threadId=require("worker_threads").threadId}catch(ignored){}const consts=require("@supertenant/superconsts"),bunyan=require("bunyan"),{logger,superbrainLogger}=require("@supertenant/core");let parentLogger=null;const registry={},bunyanToSuperbrainLogLevel={};function superbrainToBunyanWriteFn(sbLogger){function SuperBrainLogStream(){}return SuperBrainLogStream.prototype.write=function(record){try{var level;record.msg&&(level=bunyanToSuperbrainLogLevel[record.level]||consts.BrainLogLevel.Info,sbLogger(level,JSON.stringify(record)))}catch(e){}},new SuperBrainLogStream}function isBunyan(_logger){return _logger instanceof bunyan}function hasLoggingFunctions(_logger){return"function"==typeof _logger.debug&&"function"==typeof _logger.info&&"function"==typeof _logger.warn&&"function"==typeof _logger.error}bunyanToSuperbrainLogLevel[bunyan.TRACE]=consts.BrainLogLevel.Trace,bunyanToSuperbrainLogLevel[bunyan.DEBUG]=consts.BrainLogLevel.Debug,bunyanToSuperbrainLogLevel[bunyan.INFO]=consts.BrainLogLevel.Info,bunyanToSuperbrainLogLevel[bunyan.WARN]=consts.BrainLogLevel.Warn,bunyanToSuperbrainLogLevel[bunyan.ERROR]=consts.BrainLogLevel.Error,bunyanToSuperbrainLogLevel[bunyan.FATAL]=consts.BrainLogLevel.Fatal,exports.init=function(config,sbLogger,isReInit){isBunyan(parentLogger=config.logger&&"function"==typeof config.logger.child?config.logger.child({module:"supertenant-nodejs-logger-parent",__in:1}):config.logger&&hasLoggingFunctions(config.logger)?config.logger:bunyan.createLogger({name:"@supertenant/collector",thread:threadId,streams:[{level:bunyan.TRACE,stream:superbrainToBunyanWriteFn(sbLogger),type:"raw"}],__in:1}))&&(process.env.SUPERTENANT_SUPERBRAIN_DEBUG_MODE?parentLogger.level("debug"):config.level?parentLogger.level(config.level):process.env.SUPERTENANT_SUPERBRAIN_LOG__LEVEL&&parentLogger.level(process.env.SUPERTENANT_SUPERBRAIN_LOG__LEVEL.toLowerCase())),isReInit&&(Object.keys(registry).forEach(loggerName=>{(0,registry[loggerName])(exports.getLogger(loggerName))}),logger.init(config))},exports.getLogger=function(loggerName,reInitFn){parentLogger||exports.init({},superbrainLogger);let _logger;if(_logger="function"==typeof parentLogger.child?parentLogger.child({module:loggerName}):parentLogger,reInitFn){if(registry[loggerName])throw new Error(`Duplicate logger name: ${loggerName}.`);registry[loggerName]=reInitFn}return _logger};