@rudderstack/integrations-lib
Version:
52 lines • 1.74 kB
TypeScript
import { LoggableExtraData } from './types';
interface LeveledLogMethod {
(message: string, extraData?: Partial<LoggableExtraData>): void;
(infoObject: {
message: string;
} & Partial<LoggableExtraData>): void;
}
interface CustLogger {
errorw: LeveledLogMethod;
infow: LeveledLogMethod;
debugw: LeveledLogMethod;
warnw: LeveledLogMethod;
}
export type LogOpts = {
level?: string;
fillExcept?: string[];
levels?: Record<string, number>;
};
/**
* Structured logger powered by winston
* We are trying to create structured logging methods.
* Whenever someone would like to log something using structured logging, they can use these methods to do so.
* Structured logger methods:
* - debugw
* - infow
* - warnw
* - errorw
* Note: While using levels option, we need to make sure that lowest level(debug) has a value higher than higher level(warn)
*
* @example
* const logger = structuredLogger();
* logger.setLogLevel('warn')
* logger.warn('my warning', {...})
* @example
* const logger = structuredLogger({level: 'info'});
*
* @example
* logger.infow("my error message", { destinationId: "destId", workspaceId: "wspId", destinationType: "dest_type" }) // preferred
* logger.infow({ message: "my error message-2", destinationId: "destId", workspaceId: "wspId", destinationType: "dest_type" })
*
* @example
* const logger = structuredLogger({levels: {error:0,warn:1,info:2,debug:3}})
*
* @param opts
* @returns
*/
export declare const structuredLogger: (opts?: LogOpts) => import("winston").Logger & CustLogger & {
setLogLevel: (level: string) => void;
getLogLevel: (level: string) => string;
};
export {};
//# sourceMappingURL=structured-logger.d.ts.map