strogger
Version:
📊 A modern structured logging library with functional programming, duck-typing, and comprehensive third-party integrations
114 lines • 6.26 kB
TypeScript
import type { Formatter, LogContext, LoggerConfig, Transport } from "./types";
import { LogLevel } from "./types";
import type { LoggerEnvironment } from "./utils/environment";
export declare const createLogger: ({ config, transports, formatter: _formatter, env, }: {
config?: LoggerConfig;
transports?: Transport[];
formatter: Formatter;
env: LoggerEnvironment;
}) => {
debug: (message: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
info: (message: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
warn: (message: string, context?: LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
error: (message: string, context?: LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
fatal: (message: string, context?: LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
logFunctionStart: (functionName: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logFunctionEnd: (functionName: string, duration: number, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logDatabaseOperation: (operation: string, table: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logApiRequest: (method: string, path: string, statusCode: number, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
setLevel: (level: LogLevel) => void;
getLevel: () => LogLevel;
getInstanceId: () => string;
addTransport: (transport: Transport) => number;
removeTransport: (transport: Transport) => void;
setFormatter: (_newFormatter: Formatter) => void;
getSamplingStats: () => {
rateLimit: {
tokens: number;
lastRefill: number;
maxTokens: number;
refillRate: number;
} | undefined;
sampling: {
totalLogs: number;
sampledLogs: number;
samplingRate: number;
configuredRate: number;
} | undefined;
};
flush: () => Promise<void>;
getBatchStats: () => Record<string, unknown>[];
};
export declare const strogger: {
debug: (message: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
info: (message: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
warn: (message: string, context?: LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
error: (message: string, context?: LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
fatal: (message: string, context?: LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
logFunctionStart: (functionName: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logFunctionEnd: (functionName: string, duration: number, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logDatabaseOperation: (operation: string, table: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logApiRequest: (method: string, path: string, statusCode: number, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
setLevel: (level: LogLevel) => void;
getLevel: () => LogLevel;
getInstanceId: () => string;
addTransport: (transport: Transport) => number;
removeTransport: (transport: Transport) => void;
setFormatter: (_newFormatter: Formatter) => void;
getSamplingStats: () => {
rateLimit: {
tokens: number;
lastRefill: number;
maxTokens: number;
refillRate: number;
} | undefined;
sampling: {
totalLogs: number;
sampledLogs: number;
samplingRate: number;
configuredRate: number;
} | undefined;
};
flush: () => Promise<void>;
getBatchStats: () => Record<string, unknown>[];
};
export declare const createStrogger: ({ config, transports, formatter: _formatter, env, }: {
config?: LoggerConfig;
transports?: Transport[];
formatter: Formatter;
env: LoggerEnvironment;
}) => {
debug: (message: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
info: (message: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
warn: (message: string, context?: LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
error: (message: string, context?: LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
fatal: (message: string, context?: LogContext, error?: Error, metadata?: Record<string, unknown>) => Promise<void>;
logFunctionStart: (functionName: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logFunctionEnd: (functionName: string, duration: number, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logDatabaseOperation: (operation: string, table: string, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
logApiRequest: (method: string, path: string, statusCode: number, context?: LogContext, metadata?: Record<string, unknown>) => Promise<void>;
setLevel: (level: LogLevel) => void;
getLevel: () => LogLevel;
getInstanceId: () => string;
addTransport: (transport: Transport) => number;
removeTransport: (transport: Transport) => void;
setFormatter: (_newFormatter: Formatter) => void;
getSamplingStats: () => {
rateLimit: {
tokens: number;
lastRefill: number;
maxTokens: number;
refillRate: number;
} | undefined;
sampling: {
totalLogs: number;
sampledLogs: number;
samplingRate: number;
configuredRate: number;
} | undefined;
};
flush: () => Promise<void>;
getBatchStats: () => Record<string, unknown>[];
};
export declare const printLoggerConfig: (env: LoggerEnvironment) => void;
//# sourceMappingURL=logger.d.ts.map