import { AppConfig } from "../../model/AppConfig"; import { LogLevel } from "../../model/logging/LogLevel"; import { ILogger, LogFormat } from "./ILogger"; /** * Builds implementations of [[ILogger]]. */ export declare class LogFactory { private readonly logLevel; private readonly logFormat; private readonly logTimestamp; /** * Build a new log factory using application config. * * @param appConfig Config object to read logging config from. * @param logLevel (Optional) Lowest level to log, defaults to `info`. * @param logFormat (Optional) Format to output log messages in, defaults to `string`. * @param logTimestamp (Optional) Print an ISO 8601 timestamp before every log message? * (string format only, defaults to `false`). */ constructor(appConfig: AppConfig, logLevel?: LogLevel, logFormat?: LogFormat, logTimestamp?: boolean); /** * Create a new logger. * * @param clazz The enclosing class that will use the new logger. */ getLogger(clazz: Function): ILogger; /** * Create a new logger using [[AppConfig]] config defaults. * * @param clazz The enclosing class that will use the new logger. */ static getDefaultLogger(clazz: Function): ILogger; /** * Create a new logger using custom log configuration. * * @param clazz The enclosing class that will use the new logger. * @param level (Optional) Lowest level to log, defaults to `info`. * @param format (Optional) Format to output log messages in, defaults to `string`. * @param logTimestamp (Optional) Print an ISO 8601 timestamp before every log message? * (string format only, defaults to `false`). */ static getCustomLogger(clazz: Function, level?: LogLevel, format?: LogFormat, logTimestamp?: boolean): ILogger; }