Skip to content

@loggerjs/node API

Generated from packages/node/dist/**/*.d.ts. Source report: api-reports/loggerjs-node.api.md.

bullmq-integration.d.ts

ts
import { type QueueClientLike, type QueueIntegrationOptions } from "./queue-integration.js";
export interface BullMqIntegrationOptions extends Omit<QueueIntegrationOptions, "client" | "system" | "methods" | "getQueueName"> {
    /**
     * Queue-like BullMQ object. By default LoggerJS wraps `add`, `addBulk`, and a
     * legacy `process` method when present; it does not hook `Worker` or
     * `QueueEvents` lifecycle events such as `completed`, `failed`, or `stalled`.
     */
    client: QueueClientLike & {
        name?: string;
    };
    methods?: readonly string[];
}
export declare function bullMqIntegration(options: BullMqIntegrationOptions): import("@loggerjs/core").Integration;

cli-integration.d.ts

ts
import { type Integration, type LoggerLevel } from "@loggerjs/core";
export interface CliProcessLike {
    argv?: readonly string[];
    env?: Record<string, string | undefined>;
    exitCode?: number | string | null;
    cwd?: () => string;
    on?: (event: string, listener: (...args: unknown[]) => void) => unknown;
    off?: (event: string, listener: (...args: unknown[]) => void) => unknown;
    removeListener?: (event: string, listener: (...args: unknown[]) => void) => unknown;
}
export interface CaptureCliOptions {
    name?: string;
    process?: CliProcessLike;
    captureStart?: boolean;
    captureExit?: boolean;
    captureSignals?: boolean;
    captureCwd?: boolean;
    captureEnv?: readonly string[];
    signals?: readonly string[];
    level?: LoggerLevel | ((event: "start" | "exit" | "signal", code?: number | string) => LoggerLevel);
    getCommand?: (argv: readonly string[]) => string | undefined;
    sanitizeArg?: (arg: string, index: number, argv: readonly string[]) => string;
}
export declare function captureCliIntegration(options?: CaptureCliOptions): Integration;

context.d.ts

ts
import { AsyncLocalStorage } from "node:async_hooks";
import { type ContextManager } from "@loggerjs/core";
export declare function createAsyncLocalStorageContextManager(storage?: AsyncLocalStorage<Readonly<Record<string, unknown>>>): ContextManager & {
    disable: () => void;
};
export declare function installAsyncLocalStorageContext(manager?: ContextManager & {
    disable: () => void;
}): () => void;

database-integration.d.ts

ts
import { type Integration, type LoggerLevel } from "@loggerjs/core";
export interface DatabaseClientLike {
    [method: string]: unknown;
}
export interface DatabaseIntegrationTarget {
    client: DatabaseClientLike;
    name?: string;
    system?: string;
    methods?: readonly string[];
}
export interface DatabaseOperationInfo {
    target: string;
    system?: string;
    method: string;
    statement?: string;
}
export interface DatabaseIntegrationOptions {
    client?: DatabaseClientLike;
    targets?: readonly DatabaseIntegrationTarget[];
    name?: string;
    system?: string;
    methods?: readonly string[];
    captureAll?: boolean;
    captureSuccessful?: boolean;
    minDurationMs?: number;
    sampleRate?: number;
    random?: () => number;
    captureParameters?: boolean;
    sanitizeStatement?: (statement: string) => string;
    getStatement?: (args: readonly unknown[], method: string) => string | undefined;
    level?: (durationMs: number, error: unknown, info: DatabaseOperationInfo) => LoggerLevel;
}
export declare function databaseIntegration(options?: DatabaseIntegrationOptions): Integration;

diagnostics-channel-integration.d.ts

ts
import { type Integration } from "@loggerjs/core";
export interface DiagnosticsChannelModule {
    subscribe: (name: string, listener: (message: unknown, name: string) => void) => void;
    unsubscribe?: (name: string, listener: (message: unknown, name: string) => void) => void;
}
export interface DiagnosticsChannelIntegrationOptions {
    channels?: readonly string[];
    diagnosticsChannel?: DiagnosticsChannelModule | null;
    captureMessage?: boolean;
}
export declare function diagnosticsChannelIntegration(options?: DiagnosticsChannelIntegrationOptions): Integration;

express-integration.d.ts

ts
import { type LoggerLevel, type LoggerLike } from "@loggerjs/core";
export interface ExpressRequestLike {
    method?: string;
    originalUrl?: string;
    url?: string;
    path?: string;
    headers?: Record<string, string | string[] | undefined>;
    ip?: string;
    route?: {
        path?: string;
    };
    socket?: {
        remoteAddress?: string;
    };
    [key: string]: unknown;
}
export interface ExpressResponseLike {
    statusCode?: number;
    writableEnded?: boolean;
    headersSent?: boolean;
    getHeader?: (name: string) => number | string | string[] | undefined;
    once?: (event: "finish" | "close", listener: () => void) => unknown;
    on?: (event: "finish" | "close", listener: () => void) => unknown;
    off?: (event: "finish" | "close", listener: () => void) => unknown;
    removeListener?: (event: "finish" | "close", listener: () => void) => unknown;
}
export type ExpressNextFunction = (error?: unknown) => void;
export type ExpressRequestHandler = (req: ExpressRequestLike, res: ExpressResponseLike, next: ExpressNextFunction) => void;
export interface ExpressIntegrationOptions {
    name?: string;
    minStatus?: number;
    captureAll?: boolean;
    captureSuccessful?: boolean;
    captureAborted?: boolean;
    sampleRate?: number;
    random?: () => number;
    bindContext?: boolean;
    captureRequestHeaders?: readonly string[];
    captureResponseHeaders?: readonly string[];
    sanitizeUrl?: (url: string) => string;
    getRequestId?: (req: ExpressRequestLike, res: ExpressResponseLike) => string | undefined;
    getRoute?: (req: ExpressRequestLike) => string | undefined;
    context?: (req: ExpressRequestLike, res: ExpressResponseLike) => Record<string, unknown> | undefined;
    level?: (status: number, req: ExpressRequestLike, res: ExpressResponseLike, aborted: boolean) => LoggerLevel;
}
export declare function expressIntegration(logger: LoggerLike, options?: ExpressIntegrationOptions): ExpressRequestHandler;

fastify-integration.d.ts

ts
import { type LoggerLevel, type LoggerLike } from "@loggerjs/core";
export interface FastifyRequestLike {
    id?: string;
    method?: string;
    url?: string;
    headers?: Record<string, string | string[] | undefined>;
    ip?: string;
    routeOptions?: {
        url?: string;
    };
    routerPath?: string;
    [key: string]: unknown;
}
export interface FastifyReplyLike {
    statusCode?: number;
    getHeader?: (name: string) => number | string | string[] | undefined;
    [key: string]: unknown;
}
export type FastifyDone = (error?: unknown) => void;
export type FastifyOnRequestHook = (request: FastifyRequestLike, reply: FastifyReplyLike, done: FastifyDone) => void;
export type FastifyOnResponseHook = (request: FastifyRequestLike, reply: FastifyReplyLike, done: FastifyDone) => void;
export type FastifyOnErrorHook = (request: FastifyRequestLike, reply: FastifyReplyLike, error: unknown, done: FastifyDone) => void;
export interface FastifyInstanceLike {
    addHook: (name: "onRequest" | "onResponse" | "onError", hook: FastifyOnRequestHook | FastifyOnResponseHook | FastifyOnErrorHook) => unknown;
}
export type FastifyPluginCallback = (instance: FastifyInstanceLike, options: unknown, done?: FastifyDone) => void;
export interface FastifyIntegrationOptions {
    name?: string;
    minStatus?: number;
    captureAll?: boolean;
    captureSuccessful?: boolean;
    sampleRate?: number;
    random?: () => number;
    bindContext?: boolean;
    captureRequestHeaders?: readonly string[];
    captureResponseHeaders?: readonly string[];
    sanitizeUrl?: (url: string) => string;
    getRequestId?: (request: FastifyRequestLike, reply: FastifyReplyLike) => string | undefined;
    getRoute?: (request: FastifyRequestLike) => string | undefined;
    context?: (request: FastifyRequestLike, reply: FastifyReplyLike) => Record<string, unknown> | undefined;
    level?: (status: number, request: FastifyRequestLike, reply: FastifyReplyLike, error: unknown) => LoggerLevel;
}
export declare function fastifyIntegration(logger: LoggerLike, options?: FastifyIntegrationOptions): FastifyPluginCallback;

file-transport.d.ts

ts
import { type Codec, type LoggerLevel, type Transport } from "@loggerjs/core";
import type { WriteStream } from "fs";
export interface FileTransportOptions {
    path: string;
    name?: string;
    codec?: Codec<string | Uint8Array>;
    minLevel?: LoggerLevel;
    flags?: string;
    append?: boolean;
    mkdir?: boolean;
    sync?: boolean;
    minLength?: number;
}
export interface FileTransport extends Transport {
    stream?: WriteStream;
    flushSync: () => void;
}
export declare function fileTransport(options: FileTransportOptions): FileTransport;

hapi-integration.d.ts

ts
import { type LoggerLevel, type LoggerLike } from "@loggerjs/core";
export interface HapiRequestLike {
    method?: string;
    path?: string;
    url?: {
        pathname?: string;
    };
    info?: {
        id?: string;
        received?: number;
        remoteAddress?: string;
    };
    response?: {
        statusCode?: number;
    } | {
        isBoom?: boolean;
        output?: {
            statusCode?: number;
        };
    };
    app?: Record<string, unknown>;
}
export interface HapiToolkitLike {
    continue: unknown;
}
export interface HapiServerLike {
    ext: (event: "onRequest", handler: (request: HapiRequestLike, h: HapiToolkitLike) => unknown) => unknown;
    events?: {
        on?: (event: "response", handler: (request: HapiRequestLike) => void) => unknown;
    };
}
export interface HapiIntegrationOptions {
    minStatus?: number;
    captureAll?: boolean;
    bindContext?: boolean;
    getRequestId?: (request: HapiRequestLike) => string | undefined;
    context?: (request: HapiRequestLike) => Record<string, unknown> | undefined;
    level?: (status: number, request: HapiRequestLike) => LoggerLevel;
}
export declare function hapiIntegration(logger: LoggerLike, options?: HapiIntegrationOptions): {
    name: string;
    register(server: HapiServerLike): void;
};

http-transport.d.ts

ts
import { type BatchTransportOptions, type Codec, type LoggerLevel, type PayloadTransform, type Transport } from "@loggerjs/core";
export interface NodeHttpTransportOptions extends BatchTransportOptions {
    url: string;
    name?: string;
    method?: "POST" | "PUT";
    headers?: Record<string, string>;
    codec?: Codec<string | Uint8Array>;
    minLevel?: LoggerLevel;
    fetchFn?: typeof fetch;
    transformPayload?: PayloadTransform | readonly PayloadTransform[];
}
export declare function nodeHttpTransport(options: NodeHttpTransportOptions): Transport;

index.d.ts

ts
export * from "@loggerjs/core";
export * from "./stdout-transport.js";
export * from "./file-transport.js";
export * from "./rotating-file-transport.js";
export * from "./http-transport.js";
export * from "./payload-transforms.js";
export * from "./syslog-transport.js";
export * from "./worker-transport.js";
export * from "./context.js";
export * from "./bullmq-integration.js";
export * from "./cli-integration.js";
export * from "./database-integration.js";
export * from "./express-integration.js";
export * from "./fastify-integration.js";
export * from "./hapi-integration.js";
export * from "./koa-integration.js";
export * from "./nest-integration.js";
export * from "./node-fetch-integration.js";
export * from "./node-http-client-integration.js";
export * from "./process-integration.js";
export * from "./prisma-integration.js";
export * from "./queue-integration.js";
export * from "./redis-integration.js";
export * from "./serverless-integration.js";
export * from "./diagnostics-channel-integration.js";
export * from "./logger-diagnostics.js";

internal-types.d.ts

ts
export interface WritableLike {
    write: (chunk: string | Uint8Array, callback?: (error?: Error | null) => void) => unknown;
    on?: (event: "error", listener: (error: Error) => void) => unknown;
    off?: (event: "error", listener: (error: Error) => void) => unknown;
    once?: (event: "drain", listener: () => void) => unknown;
    end?: (callback?: (error?: Error | null) => void) => unknown;
}

koa-integration.d.ts

ts
import { type LoggerLevel, type LoggerLike } from "@loggerjs/core";
export interface KoaContextLike {
    method?: string;
    originalUrl?: string;
    url?: string;
    path?: string;
    status?: number;
    ip?: string;
    state?: Record<string, unknown>;
    request?: {
        headers?: Record<string, string | string[] | undefined>;
    };
}
export type KoaNext = () => Promise<unknown>;
export type KoaMiddleware = (ctx: KoaContextLike, next: KoaNext) => Promise<void>;
export interface KoaIntegrationOptions {
    minStatus?: number;
    captureAll?: boolean;
    bindContext?: boolean;
    sanitizeUrl?: (url: string) => string;
    getRequestId?: (ctx: KoaContextLike) => string | undefined;
    context?: (ctx: KoaContextLike) => Record<string, unknown> | undefined;
    level?: (status: number, ctx: KoaContextLike, error: unknown) => LoggerLevel;
}
export declare function koaIntegration(logger: LoggerLike, options?: KoaIntegrationOptions): KoaMiddleware;

logger-diagnostics.d.ts

ts
import { type LoggerDiagnosticEvent } from "@loggerjs/core";
export interface LoggerDiagnosticsChannelPublisher {
    hasSubscribers?: boolean;
    publish: (message: LoggerDiagnosticEvent) => void;
}
export interface LoggerDiagnosticsChannelModule {
    channel: (name: string) => LoggerDiagnosticsChannelPublisher;
}
export interface InstallLoggerDiagnosticsChannelOptions {
    diagnosticsChannel?: LoggerDiagnosticsChannelModule | null;
    prefix?: string;
}
export declare function installLoggerDiagnosticsChannel(options?: InstallLoggerDiagnosticsChannelOptions): () => void;

nest-integration.d.ts

ts
import type { LoggerLike } from "@loggerjs/core";
import { type ExpressIntegrationOptions, type ExpressRequestHandler } from "./express-integration.js";
export type NestMiddleware = ExpressRequestHandler;
/**
 * Express-compatible Nest middleware adapter. It observes the same request and
 * response completion surface as `expressIntegration`; it does not hook Nest
 * exception filters, interceptors, guards, or the original thrown `Error`.
 */
export declare function nestMiddlewareIntegration(logger: LoggerLike, options?: ExpressIntegrationOptions): NestMiddleware;

node-destination.d.ts

ts
import { type WriteStream } from "fs";
import type { TransportContext } from "@loggerjs/core";
import type { WritableLike } from "./internal-types.js";
export interface NodeDestination {
    stream?: WriteStream;
    write: (payload: string | Uint8Array, context?: TransportContext) => void;
    flush: () => Promise<void>;
    flushSync: () => void;
    close: () => Promise<void>;
    closeSync: () => void;
    releaseSync?: () => void;
}
export interface NodeStreamDestinationOptions {
    name: string;
    stream: WritableLike;
    minLength?: number;
    ignoreEpipe?: boolean;
    reportOperation?: string;
    syncWrite?: (payload: string | Uint8Array) => void;
}
export interface NodeFileDestinationOptions {
    name: string;
    path: string;
    flags?: string;
    append?: boolean;
    mkdir?: boolean;
    sync?: boolean;
    minLength?: number;
}
export declare function createNodeStreamDestination(options: NodeStreamDestinationOptions): NodeDestination;
export declare function createNodeFileDestination(options: NodeFileDestinationOptions): NodeDestination;

node-fetch-integration.d.ts

ts
import { type Integration, type LoggerLevel } from "@loggerjs/core";
export interface NodeFetchHeadersLike {
    get?: (name: string) => string | null;
    [key: string]: unknown;
}
export interface NodeFetchRequestLike {
    url?: string;
    method?: string;
    headers?: NodeFetchHeadersLike | Record<string, unknown>;
}
export interface NodeFetchInitLike {
    method?: string;
    headers?: NodeFetchHeadersLike | Record<string, unknown>;
}
export interface NodeFetchResponseLike {
    status?: number;
    headers?: NodeFetchHeadersLike | Record<string, unknown>;
}
export type NodeFetchFunction = (input: string | URL | NodeFetchRequestLike, init?: NodeFetchInitLike) => Promise<NodeFetchResponseLike>;
export interface NodeFetchTargetLike {
    fetch?: NodeFetchFunction;
}
export interface NodeFetchRequestInfo {
    method: string;
    url: string;
    requestHeaders?: Record<string, string>;
}
export interface NodeFetchIntegrationOptions {
    name?: string;
    minStatus?: number;
    captureAll?: boolean;
    captureSuccessful?: boolean;
    sampleRate?: number;
    random?: () => number;
    captureRequestHeaders?: readonly string[];
    captureResponseHeaders?: readonly string[];
    sanitizeUrl?: (url: string) => string;
    level?: (status: number | undefined, error: unknown, info: NodeFetchRequestInfo) => LoggerLevel;
    target?: NodeFetchTargetLike;
}
export declare function nodeFetchIntegration(options?: NodeFetchIntegrationOptions): Integration;

node-http-client-integration.d.ts

ts
import { type Integration, type LoggerLevel } from "@loggerjs/core";
export interface NodeHttpClientRequestLike {
    once?: (event: "response" | "error", listener: (...args: unknown[]) => void) => unknown;
    on?: (event: "response" | "error", listener: (...args: unknown[]) => void) => unknown;
    off?: (event: "response" | "error", listener: (...args: unknown[]) => void) => unknown;
    removeListener?: (event: "response" | "error", listener: (...args: unknown[]) => void) => unknown;
    end?: (...args: unknown[]) => unknown;
}
export interface NodeHttpIncomingMessageLike {
    statusCode?: number;
    headers?: Record<string, number | string | string[] | undefined>;
}
export type NodeHttpRequestFunction = (this: unknown, ...args: unknown[]) => NodeHttpClientRequestLike;
export interface NodeHttpModuleLike {
    request?: NodeHttpRequestFunction;
    get?: NodeHttpRequestFunction;
}
export interface NodeHttpClientRequestInfo {
    protocol: "http:" | "https:" | string;
    method: string;
    url: string;
    requestHeaders?: Record<string, string | string[]>;
}
export interface NodeHttpClientIntegrationOptions {
    name?: string;
    minStatus?: number;
    captureAll?: boolean;
    captureSuccessful?: boolean;
    sampleRate?: number;
    random?: () => number;
    captureRequestHeaders?: readonly string[];
    captureResponseHeaders?: readonly string[];
    sanitizeUrl?: (url: string) => string;
    level?: (status: number | undefined, error: unknown, info: NodeHttpClientRequestInfo) => LoggerLevel;
    httpModule?: NodeHttpModuleLike | null;
    httpsModule?: NodeHttpModuleLike | null;
}
export declare function nodeHttpClientIntegration(options?: NodeHttpClientIntegrationOptions): Integration;

payload-transforms.d.ts

ts
import { type BrotliOptions, type ZlibOptions } from "node:zlib";
import { type PayloadTransform } from "@loggerjs/core";
export type NodeCompressionFormat = "gzip" | "brotli" | "deflate";
export interface NodeCompressionPayloadTransformOptions {
    format?: NodeCompressionFormat;
    gzipOptions?: ZlibOptions;
    brotliOptions?: BrotliOptions;
    deflateOptions?: ZlibOptions;
    headers?: Record<string, string>;
}
export declare function nodeCompressionPayloadTransform(options?: NodeCompressionPayloadTransformOptions): PayloadTransform;

prisma-integration.d.ts

ts
import { type DatabaseClientLike, type DatabaseIntegrationOptions } from "./database-integration.js";
export interface PrismaIntegrationOptions extends Omit<DatabaseIntegrationOptions, "client" | "system" | "methods" | "getStatement"> {
    /**
     * Prisma-like client whose raw query methods should be wrapped. This adapter
     * does not subscribe to `$on("query")` and does not capture typed model
     * operations such as `prisma.user.findMany()`.
     */
    client: DatabaseClientLike;
}
export declare function prismaIntegration(options: PrismaIntegrationOptions): import("@loggerjs/core").Integration;

process-integration.d.ts

ts
import { type Integration } from "@loggerjs/core";
export type ProcessSignal = "SIGHUP" | "SIGINT" | "SIGQUIT" | "SIGTERM";
export interface CaptureProcessOptions {
    uncaughtException?: boolean;
    unhandledRejection?: boolean;
    warning?: boolean;
    beforeExitFlush?: boolean;
    exitFlush?: boolean;
    signalFlush?: boolean;
    signals?: ProcessSignal[];
    exitOnSignal?: boolean;
    exitOnUncaught?: boolean;
    flushTimeoutMs?: number;
    exitFn?: (code: number) => void;
}
export declare function captureProcessIntegration(options?: CaptureProcessOptions): Integration;

queue-integration.d.ts

ts
import { type Integration, type LoggerLevel } from "@loggerjs/core";
export type QueueOperation = "publish" | "consume" | "ack" | "nack" | "other";
export interface QueueClientLike {
    [method: string]: unknown;
}
export interface QueueIntegrationTarget {
    client: QueueClientLike;
    name?: string;
    system?: string;
    queueName?: string;
    methods?: readonly string[];
}
export interface QueueOperationInfo {
    target: string;
    system?: string;
    queueName?: string;
    method: string;
    operation: QueueOperation;
}
export interface QueueIntegrationOptions {
    client?: QueueClientLike;
    targets?: readonly QueueIntegrationTarget[];
    name?: string;
    system?: string;
    queueName?: string;
    methods?: readonly string[];
    captureAll?: boolean;
    captureSuccessful?: boolean;
    minDurationMs?: number;
    sampleRate?: number;
    random?: () => number;
    capturePayload?: boolean;
    getOperation?: (method: string, args: readonly unknown[]) => QueueOperation;
    getQueueName?: (args: readonly unknown[], method: string) => string | undefined;
    getMessageId?: (args: readonly unknown[], method: string) => string | undefined;
    getPayload?: (args: readonly unknown[], method: string) => unknown;
    level?: (durationMs: number, error: unknown, info: QueueOperationInfo) => LoggerLevel;
}
export declare function queueIntegration(options?: QueueIntegrationOptions): Integration;

redis-integration.d.ts

ts
import { type DatabaseClientLike, type DatabaseIntegrationOptions } from "./database-integration.js";
export interface RedisIntegrationOptions extends Omit<DatabaseIntegrationOptions, "client" | "system" | "methods" | "getStatement"> {
    client: DatabaseClientLike;
    methods?: readonly string[];
}
export declare function redisIntegration(options: RedisIntegrationOptions): import("@loggerjs/core").Integration;

rotating-file-transport.d.ts

ts
import { type Codec, type LoggerLevel, type Transport } from "@loggerjs/core";
export interface RotatingFileTransportOptions {
    path: string;
    name?: string;
    codec?: Codec<string | Uint8Array>;
    minLevel?: LoggerLevel;
    flags?: string;
    append?: boolean;
    mkdir?: boolean;
    maxBytes?: number;
    maxFiles?: number;
    archivePath?: (path: string, index: number) => string;
}
export interface RotatingFileTransport extends Transport {
    rotate: () => void;
    flushSync: () => void;
    currentBytes: () => number;
}
export declare function rotatingFileTransport(options: RotatingFileTransportOptions): RotatingFileTransport;

serverless-integration.d.ts

ts
import { type LoggerLevel, type LoggerLike } from "@loggerjs/core";
export type ServerlessCallback<TResult> = (error?: unknown, result?: TResult) => void;
export type ServerlessHandler<TEvent, TContext, TResult> = (event: TEvent, context: TContext, callback?: ServerlessCallback<TResult>) => TResult | Promise<TResult> | void;
export interface ServerlessContextLike {
    awsRequestId?: string;
    functionName?: string;
    functionVersion?: string;
    invokedFunctionArn?: string;
    [key: string]: unknown;
}
export interface ServerlessEventLike {
    httpMethod?: string;
    path?: string;
    rawPath?: string;
    routeKey?: string;
    headers?: Record<string, string | undefined>;
    requestContext?: {
        requestId?: string;
        http?: {
            method?: string;
            path?: string;
        };
        routeKey?: string;
    };
    [key: string]: unknown;
}
export interface ServerlessInvocationInfo<TEvent, TContext> {
    event: TEvent;
    context: TContext;
    requestId?: string;
    operation?: string;
}
export interface ServerlessIntegrationOptions<TEvent, TContext, TResult> {
    name?: string;
    platform?: string;
    captureSuccessful?: boolean;
    captureAll?: boolean;
    sampleRate?: number;
    random?: () => number;
    captureEvent?: boolean;
    captureResult?: boolean;
    bindContext?: boolean;
    getRequestId?: (event: TEvent, context: TContext) => string | undefined;
    getOperation?: (event: TEvent, context: TContext) => string | undefined;
    level?: (error: unknown, durationMs: number, info: ServerlessInvocationInfo<TEvent, TContext>) => LoggerLevel;
    normalizeEvent?: (event: TEvent) => unknown;
    normalizeResult?: (result: TResult) => unknown;
}
export declare function serverlessIntegration<TEvent, TContext, TResult>(logger: LoggerLike, handler: ServerlessHandler<TEvent, TContext, TResult>, options?: ServerlessIntegrationOptions<TEvent, TContext, TResult>): ServerlessHandler<TEvent, TContext, TResult>;

stdout-transport.d.ts

ts
import { type Codec, type LoggerLevel, type Transport } from "@loggerjs/core";
import type { WritableLike } from "./internal-types.js";
export interface StdoutTransportOptions {
    name?: string;
    stream?: WritableLike;
    codec?: Codec<string | Uint8Array>;
    minLevel?: LoggerLevel;
    minLength?: number;
    ignoreEpipe?: boolean;
}
export declare function stdoutTransport(options?: StdoutTransportOptions): Transport;
export declare function stderrTransport(options?: Omit<StdoutTransportOptions, "stream">): Transport;

syslog-transport.d.ts

ts
import { type LogEvent, type LoggerLevel, type Transport } from "@loggerjs/core";
export type NodeSyslogProtocol = "tcp" | "udp4" | "udp6";
export type NodeSyslogTcpFraming = "newline" | "octet-counting";
export interface NodeSyslogUdpSocket {
    send: (message: string | Uint8Array, port: number, host: string, callback?: (error: Error | null | undefined) => void) => void;
    close?: () => void;
    on?: (event: "error", listener: (error: Error) => void) => void;
    unref?: () => void;
}
export interface NodeSyslogTcpSocket {
    write: (message: string | Uint8Array, callback?: (error?: Error | null) => void) => boolean;
    end?: () => void;
    destroy?: () => void;
    on?: (event: "error", listener: (error: Error) => void) => void;
    unref?: () => void;
}
export type NodeSyslogUdpSocketFactory = (protocol: "udp4" | "udp6") => NodeSyslogUdpSocket;
export type NodeSyslogTcpSocketFactory = (options: {
    host: string;
    port: number;
}) => NodeSyslogTcpSocket;
export interface NodeSyslogFormatOptions {
    facility?: number;
    hostname?: string;
    appName?: string | ((event: LogEvent) => string);
    procId?: string | number | ((event: LogEvent) => string | number);
    msgId?: string | ((event: LogEvent) => string);
    structuredData?: string | ((event: LogEvent) => string);
    formatMessage?: (event: LogEvent) => string;
}
export interface NodeSyslogTransportOptions extends NodeSyslogFormatOptions {
    name?: string;
    minLevel?: LoggerLevel;
    protocol?: NodeSyslogProtocol;
    host?: string;
    port?: number;
    tcpFraming?: NodeSyslogTcpFraming;
    unref?: boolean;
    udpSocketFactory?: NodeSyslogUdpSocketFactory;
    tcpSocketFactory?: NodeSyslogTcpSocketFactory;
    onError?: (error: unknown, detail: {
        operation: string;
    }) => void;
}
export declare function formatSyslogMessage(event: LogEvent, options?: NodeSyslogFormatOptions): string;
export declare function nodeSyslogTransport(options?: NodeSyslogTransportOptions): Transport;

worker-transport.d.ts

ts
import { type Codec, type LoggerLevel, type Transport } from "@loggerjs/core";
export interface WorkerLike {
    postMessage: (value: unknown, transferList?: ArrayBuffer[]) => void;
    terminate?: () => void | number | Promise<number>;
    on?: (event: "error" | "exit" | "message", listener: (...args: unknown[]) => void) => unknown;
    off?: (event: "error" | "exit" | "message", listener: (...args: unknown[]) => void) => unknown;
}
export interface WorkerTransportMessage {
    type: "loggerjs:batch";
    id?: number;
    codec: string;
    contentType: string;
    count: number;
    payload: Uint8Array;
}
export type WorkerTransportProtocolMessage = {
    type: "loggerjs:ready";
} | {
    type: "loggerjs:batch:ack";
    id: number;
} | {
    type: "loggerjs:error";
    error?: unknown;
    message?: string;
};
export interface WorkerTransportOptions {
    name?: string;
    worker?: WorkerLike;
    workerFactory?: () => WorkerLike;
    workerScript?: string | URL;
    workerOptions?: object;
    fallback?: Transport;
    codec?: Codec<string | Uint8Array>;
    minLevel?: LoggerLevel;
    transferBuffers?: boolean;
    readyTimeoutMs?: number;
    ackTimeoutMs?: number;
    autoEnd?: boolean;
}
export declare function workerTransport(options?: WorkerTransportOptions): Transport;

Released under the MIT License.