UNPKG

@neodx/log

Version:

A lightweight universal logging framework

208 lines (199 loc) 4.97 kB
import { A as AutoLoggerInput } from '../_internal/read-arguments-Bkk-Ifkg.js'; import { L as LogChunk, C as CreateLogger, a as LoggerParams, b as Logger } from '../_internal/types-BxgckgWg.js'; export { C as CreateLoggerFactoryParams, D as DEFAULT_LOGGER_LEVELS, a as DEFAULT_LOGGER_PARAMS, b as DefaultLoggerLevel, L as LOGGER_SILENT_LEVEL, c as createLoggerFactory } from '../_internal/shared-COvewc3V.js'; import { PathLike } from 'node:fs'; import { Writable } from 'node:stream'; import { Colors, ColorName } from '@neodx/colors'; interface PrintCodeFrameOptions { colors?: Colors; source: string; indent?: number; lineNumber: number; columnNumber: number; overscan?: number; } declare function printCodeFrame({ colors, indent, columnNumber, lineNumber, source, overscan }: PrintCodeFrameOptions): string; interface ParsedStack { file: string; line: number; method: string; column: number; } interface PrintPrettyErrorOptions { cwd?: string; indent?: number; colors?: Colors; fullStack?: boolean; codeFrame?: boolean | 'auto' | GetHighlightStacks; stringify?: (value: unknown) => string; filterStack?: (stack: ParsedStack) => boolean; } type GetHighlightStacks = (stacks: ParsedStack[]) => ParsedStack | ParsedStack[]; declare function printPrettyError( originalError: unknown, options?: PrintPrettyErrorOptions ): string; type LogSerializers = Record<string, LogSerializer>; type LogSerializer = (value: any) => any; interface JsonTargetParams { target?: Writable | ((...args: unknown[]) => void); dateKey?: string; errorKey?: string; messageKey?: string; serializers?: LogSerializers; levelValueKey?: string; } declare function file( filename: PathLike, options?: Omit<JsonTargetParams, 'target'> ): ({ msg, error, meta, level, name, date, __: { levels } }: LogChunk<string>) => void; declare function json({ target, dateKey, errorKey, messageKey, serializers, levelValueKey }?: JsonTargetParams): ({ msg, error, meta, level, name, date, __: { levels } }: LogChunk<string>) => void; interface PrettyTargetParams<Level extends string> { /** * Default handler for log messages without errors. */ log?(...args: unknown[]): void; /** * Default handler for log messages with errors (e.g. `logger.error(new Error(), 'message')`). */ logError?(...args: unknown[]): void; /** * Custom implementation of colors from `@neodx/colors` or other libraries with same contracts. * @example `createColors(false, false)` - disable colors completely */ colors?: Colors; /** * Display milliseconds in log message (e.g. `12:34:56.789`). * Works only if `displayTime` is `true`. */ displayMs?: boolean; serializers?: LogSerializers; /** * Display time in a log message */ displayTime?: boolean; /** * Display log level in log message. */ displayLevel?: boolean; prettyErrors?: boolean | Partial<PrintPrettyErrorOptions>; levelColors?: Partial<Record<Level, ColorName>> | null; levelBadges?: Partial<Record<Level, string>> | null; } /** * Creates a pretty log handler for development mode in node. */ declare function pretty<const Level extends string>({ log, logError, colors, displayMs, serializers, displayTime, displayLevel, prettyErrors, levelColors, levelBadges }?: PrettyTargetParams<Level>): (chunk: LogChunk<Level>) => void; declare namespace pretty { var defaultBadges: Partial< Record<'error' | 'debug' | 'info' | 'done' | 'silent' | 'warn' | 'success' | 'verbose', string> >; var defaultColors: Partial< Record< 'error' | 'debug' | 'info' | 'done' | 'silent' | 'warn' | 'success' | 'verbose', | 'reset' | 'bold' | 'dim' | 'italic' | 'overline' | 'underline' | 'inverse' | 'hidden' | 'strikethrough' | 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray' | 'redBright' | 'greenBright' | 'yellowBright' | 'blueBright' | 'magentaBright' | 'cyanBright' | 'whiteBright' | 'bgBlack' | 'bgRed' | 'bgGreen' | 'bgYellow' | 'bgBlue' | 'bgMagenta' | 'bgCyan' | 'bgWhite' > >; } declare const NODE_LOGGER_SYSTEM_INFO: { pid: number; hostname: string; }; declare const createLogger: CreateLogger< 'error' | 'debug' | 'info' | 'done' | 'silent' | 'warn' | 'success' | 'verbose' >; declare const createAutoLogger: <const Level extends string>( log: AutoLoggerInput<Level>, defaultParams?: Partial<LoggerParams<Level>> | undefined ) => Logger<Level>; export { type JsonTargetParams, NODE_LOGGER_SYSTEM_INFO, type PrettyTargetParams, type PrintCodeFrameOptions, type PrintPrettyErrorOptions, createAutoLogger, createLogger, file, json, pretty, printCodeFrame, printPrettyError };