30 lines
1.0 KiB
JavaScript
30 lines
1.0 KiB
JavaScript
/*
|
|
* 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
|