grpc-js: Split out logs for different severity levels

This commit is contained in:
murgatroid99 2021-07-15 10:08:05 -07:00
parent 08423d62ac
commit a0f298c514
1 changed files with 34 additions and 3 deletions

View File

@ -17,7 +17,19 @@
import { LogVerbosity } from './constants';
let _logger: Partial<Console> = console;
const DEFAULT_LOGGER: Partial<Console> = {
error: (message?: any, ...optionalParams: any[]) => {
console.error('E ' + message, ...optionalParams);
},
info: (message?: any, ...optionalParams: any[]) => {
console.error('I ' + message, ...optionalParams);
},
debug: (message?: any, ...optionalParams: any[]) => {
console.error('D ' + message, ...optionalParams);
},
}
let _logger: Partial<Console> = DEFAULT_LOGGER;
let _logVerbosity: LogVerbosity = LogVerbosity.ERROR;
const verbosityString =
@ -54,8 +66,27 @@ export const setLoggerVerbosity = (verbosity: LogVerbosity): void => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const log = (severity: LogVerbosity, ...args: any[]): void => {
if (severity >= _logVerbosity && typeof _logger.error === 'function') {
_logger.error(...args);
let logFunction: typeof DEFAULT_LOGGER.error;
if (severity >= _logVerbosity) {
switch (severity) {
case LogVerbosity.DEBUG:
logFunction = _logger.debug;
break;
case LogVerbosity.INFO:
logFunction = _logger.info;
break;
case LogVerbosity.ERROR:
logFunction = _logger.error;
break;
}
/* Fall back to _logger.error when other methods are not available for
* compatiblity with older behavior that always logged to _logger.error */
if (!logFunction) {
logFunction = _logger.error;
}
if (logFunction) {
logFunction.bind(_logger)(...args);
}
}
};