@fuel-ts/logger
Version:
A logger for the Fuel-TS ecosystem
113 lines • 2.94 kB
TypeScript
/**
* @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