import { Logger,ISettingsParam } from "tslog"; function loggerConfig(name: string): ISettingsParam { return { type: "pretty", // pretty, json, hidden name: name, hideLogPositionForProduction: true, prettyLogTemplate: "{{dateIsoStr}} {{logLevelName}} {{nameWithDelimiterPrefix}} " } } type log = { core: Logger db: Logger web: Logger S3: Logger auth: Logger api?: Logger frontend?: Logger }; // FIXME: any type let log: log = { core: new Logger(loggerConfig("Core")), db: new Logger(loggerConfig("DB")), web: new Logger(loggerConfig("Web")), S3: new Logger(loggerConfig("S3")), auth: new Logger(loggerConfig("Auth")), // helper: new Logger(loggerConfig("HELPER")), }; log["api"] = log.web.getSubLogger({ name: "API" }); log["frontend"] = log.web.getSubLogger({ name: "Frontend" }); // log.core.silly("Hello from core"); //log.api.trace("Hello from api"); //log.frontend.trace("Hello from frontend"); // log.core.debug("Hello from core"); // log.core.info("Hello from core"); // log.core.warn("Hello from core"); // log.core.error("Hello from core"); // log.db.silly("Hello from db"); // log.db.trace("Hello from db"); // log.web.debug("Hello from db"); // log.auth.info("Hello from db"); // log.helper.warn("Hello from db"); // log.db.error("Hello from db"); // log.core.fatal(new Error("I am a pretty Error with a stacktrace.")); export default log;