| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | import { LogVerbosity } from './constants'; |
| | import { pid } from 'process'; |
| |
|
| | const clientVersion = require('../../package.json').version; |
| |
|
| | 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 = |
| | process.env.GRPC_NODE_VERBOSITY ?? process.env.GRPC_VERBOSITY ?? ''; |
| |
|
| | switch (verbosityString.toUpperCase()) { |
| | case 'DEBUG': |
| | _logVerbosity = LogVerbosity.DEBUG; |
| | break; |
| | case 'INFO': |
| | _logVerbosity = LogVerbosity.INFO; |
| | break; |
| | case 'ERROR': |
| | _logVerbosity = LogVerbosity.ERROR; |
| | break; |
| | case 'NONE': |
| | _logVerbosity = LogVerbosity.NONE; |
| | break; |
| | default: |
| | |
| | } |
| |
|
| | export const getLogger = (): Partial<Console> => { |
| | return _logger; |
| | }; |
| |
|
| | export const setLogger = (logger: Partial<Console>): void => { |
| | _logger = logger; |
| | }; |
| |
|
| | export const setLoggerVerbosity = (verbosity: LogVerbosity): void => { |
| | _logVerbosity = verbosity; |
| | }; |
| |
|
| | |
| | export const log = (severity: LogVerbosity, ...args: any[]): void => { |
| | 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; |
| | } |
| | |
| | |
| | if (!logFunction) { |
| | logFunction = _logger.error; |
| | } |
| | if (logFunction) { |
| | logFunction.bind(_logger)(...args); |
| | } |
| | } |
| | }; |
| |
|
| | const tracersString = |
| | process.env.GRPC_NODE_TRACE ?? process.env.GRPC_TRACE ?? ''; |
| | const enabledTracers = new Set<string>(); |
| | const disabledTracers = new Set<string>(); |
| | for (const tracerName of tracersString.split(',')) { |
| | if (tracerName.startsWith('-')) { |
| | disabledTracers.add(tracerName.substring(1)); |
| | } else { |
| | enabledTracers.add(tracerName); |
| | } |
| | } |
| | const allEnabled = enabledTracers.has('all'); |
| |
|
| | export function trace( |
| | severity: LogVerbosity, |
| | tracer: string, |
| | text: string |
| | ): void { |
| | if (isTracerEnabled(tracer)) { |
| | log( |
| | severity, |
| | new Date().toISOString() + |
| | ' | v' + |
| | clientVersion + |
| | ' ' + |
| | pid + |
| | ' | ' + |
| | tracer + |
| | ' | ' + |
| | text |
| | ); |
| | } |
| | } |
| |
|
| | export function isTracerEnabled(tracer: string): boolean { |
| | return ( |
| | !disabledTracers.has(tracer) && (allEnabled || enabledTracers.has(tracer)) |
| | ); |
| | } |
| |
|