cosmic-interchain-cli
Version:
A command-line utility for Cosmic Wire's interchain messaging protocol
37 lines • 2.03 kB
JavaScript
import chalk from 'chalk';
import { LogFormat, LogLevel, configureRootLogger, getLogFormat, rootLogger, safelyAccessEnvVar, } from '@hyperlane-xyz/utils';
let logger = rootLogger;
export function configureLogger(logFormat, logLevel) {
logFormat =
logFormat || safelyAccessEnvVar('LOG_FORMAT', true) || LogFormat.Pretty;
logLevel = logLevel || safelyAccessEnvVar('LOG_LEVEL', true) || LogLevel.Info;
logger = configureRootLogger(logFormat, logLevel).child({ module: 'cli' });
}
export const log = (msg, ...args) => logger.info(msg, ...args);
export function logColor(level, chalkInstance, ...args) {
// Only use color when pretty is enabled
if (getLogFormat() === LogFormat.Pretty) {
logger[level](chalkInstance(...args));
}
else {
// @ts-ignore pino type more restrictive than pino's actual arg handling
logger[level](...args);
}
}
export const logBlue = (...args) => logColor('info', chalk.blue, ...args);
export const logBlueKeyValue = (key, value) => {
logBlue(`${chalk.bold(`${key}:`)} ${value}`);
};
export const logPink = (...args) => logColor('info', chalk.magentaBright, ...args);
export const logGray = (...args) => logColor('info', chalk.gray, ...args);
export const logGreen = (...args) => logColor('info', chalk.green, ...args);
export const logRed = (...args) => logColor('info', chalk.red, ...args);
export const logBoldUnderlinedRed = (...args) => logColor('info', chalk.red.bold.underline, ...args);
export const logBoldBlue = (...args) => logColor('info', chalk.blue.bold, ...args);
export const logTip = (...args) => logColor('info', chalk.bgYellow, ...args);
export const warnYellow = (...args) => logColor('warn', chalk.yellow, ...args);
export const errorRed = (...args) => logColor('error', chalk.red, ...args);
export const logDebug = (msg, ...args) => logger.debug(msg, ...args);
// No support for table in pino so print directly to console
export const logTable = (...args) => console.table(...args);
//# sourceMappingURL=logger.js.map