/* * Copyright The OpenTelemetry Authors * SPDX-License-Identifier: Apache-2.0 */ import { DiagLogLevel } from '../types'; export function createLogLevelDiagLogger(maxLevel, logger) { if (maxLevel < DiagLogLevel.NONE) { maxLevel = DiagLogLevel.NONE; } else if (maxLevel > DiagLogLevel.ALL) { maxLevel = DiagLogLevel.ALL; } // In case the logger is null or undefined logger = logger || {}; function _filterFunc(funcName, theLevel) { const theFunc = logger[funcName]; if (typeof theFunc === 'function' && maxLevel >= theLevel) { return theFunc.bind(logger); } return function () { }; } return { error: _filterFunc('error', DiagLogLevel.ERROR), warn: _filterFunc('warn', DiagLogLevel.WARN), info: _filterFunc('info', DiagLogLevel.INFO), debug: _filterFunc('debug', DiagLogLevel.DEBUG), verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE), }; } //# sourceMappingURL=logLevelLogger.js.map