import { errSerializer } from '@jupiterone/platform-sdk-errors'; import Logger, { LogLevel, Serializers } from 'bunyan'; export type { Serializers, LogLevel }; export { Logger, errSerializer }; export declare type LoggerContext = { logger: Logger; metadata: { correlationId: string; }; }; export declare type LogLevelName = 'trace' | 'debug' | 'info' | 'fatal' | 'warn' | 'error'; /** * The `overrideLogger` should only be used for mocking logging while running * tests! Do not use this function for any other purposes. */ export declare function overrideLogger(logger: Logger | undefined): void; /** * The `configureDefaultLogger` function should be called in the entry point * of the Node.js process so that there are some common properties associated * with the log messages. It is a good practice to add the "build ID" to the * log messages to understand changes that may have occurred after a new * version is deployed. */ export declare function createBaseLogger(options: { projectName: string; logLevel: LogLevel; serializers?: Logger.Serializers; usePrettyLogger: boolean; properties?: { /** * The build ID whose value would typically come from an environment * variable. */ buildId?: string; } & Record; }): Logger; /** * Application code will use `createLogger(module)` or `createLogger('my-logger')` * to create a logger for their application. The logger that is returned also * has a `child` function that can return a new child logger that is bound * to additional properties. */ export declare function createModuleLogger(baseLogger: Logger, options: string | { filename: string; }, extraProperties?: Record): Logger;