UNPKG

@fuel-ts/logger

Version:

A logger for the Fuel-TS ecosystem

113 lines 2.94 kB
/** * @packageDocumentation * * A logger for fuel based on the [debug](https://www.npmjs.com/package/debug) module. * * @example * * ```TypeScript * import { logger } from '@fuel-ts/logger' * * const log = logger('fuel-ts:my:package:name') * * try { * // an operation * log('something happened: %s', 'it was ok') * } catch (err) { * log.error('something bad happened: %o', err) * } * * log('with this walletAddress: %w', address) * log('and this B256: %b', address) * ``` * * ```console * $ DEBUG=fuel-ts:* node index.js * something happened: it was ok * something bad happened: <stack trace> * with this walletAddress: 0xf212....3aDc * ``` */ import type { Address } from '@fuel-ts/address'; /** * Creates a logger for the passed component name. * * @example * * ```TypeScript * import { logger } from '@fuel-ts/logger' * * const log = logger('my-component') * log.info('hello world') * // logs "my-component hello world" * ``` */ export declare function logger(name: string): Logger; export declare function disable(): void; export declare function enable(namespaces: string): void; export declare function enabled(namespaces: string): boolean; export interface Logger { (formatter: unknown, ...args: unknown[]): void; error(formatter: unknown, ...args: unknown[]): void; warn(formatter: unknown, ...args: unknown[]): void; info(formatter: unknown, ...args: unknown[]): void; enabled: boolean; } export interface ComponentLogger { forComponent(name: string): Logger; } export interface AddressLoggerOptions { prefixLength: number; suffixLength: number; } /** * Create a component logger that will prefix any log messages with the passed * string. * * @example * * ```TypeScript * import { prefixLogger } from '@fuel-ts/logger' * * const logger = prefixLogger('my-node') * * const log = logger.forComponent('my-component') * log.info('hello world') * // logs "my-node:my-component hello world" * ``` */ export declare function prefixLogger(prefix: string): ComponentLogger; /** * Create a component logger that will prefix any log messages with a truncated * wallet address. * * @example * * ```TypeScript * import { walletLogger } from '@fuel-ts/logger' * * const walletAddress = wallet.address.toAddress() * const logger = walletLogger(walletAddress) * * const log = logger.forComponent('my-component') * log.info('hello world') * ``` */ export declare function walletLogger(walletAddress: Address, options?: Partial<AddressLoggerOptions>): ComponentLogger; /** * Create a component logger * * @example * * ```TypeScript * import { defaultLogger } from '@fuel-ts/logger' * * const logger = defaultLogger() * * const log = logger.forComponent('my-package') * log.info('hello world') * // logs "my-package hello world" * ``` */ export declare function defaultLogger(): ComponentLogger; //# sourceMappingURL=index.d.ts.map