egg
Version:
A web application framework for Node.js
30 lines (29 loc) • 1.08 kB
JavaScript
import { EggLoggers } from "egg-logger";
import { setCustomLogger } from "onelogger";
//#region src/lib/core/logger.ts
function createLoggers(app) {
const loggerOptions = {
...app.config.logger,
type: app.type,
localStorage: app.ctxStorage
};
if (app.config.env === "prod" && loggerOptions.level === "DEBUG" && !app.config.logger.allowDebugAtProd) loggerOptions.level = "INFO";
const loggers = new EggLoggers({
logger: loggerOptions,
customLogger: app.config.customLogger
});
app.ready(() => {
if (app.config.logger.disableConsoleAfterReady) {
loggers.disableConsole();
loggers.coreLogger.info("[egg:lib:core:logger] disable console log after app ready");
}
});
for (const loggerName of Object.keys(loggers)) setCustomLogger(loggerName, loggers[loggerName]);
app.lifecycle.registerBeforeClose(() => {
for (const loggerName of Object.keys(loggers)) setCustomLogger(loggerName, void 0);
});
loggers.coreLogger.info("[egg:lib:core:logger] init all loggers with options: %j", loggerOptions);
return loggers;
}
//#endregion
export { createLoggers };