excel-csv-read-write
Version:
Excel and CSV read write utility.
59 lines • 2.13 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.setLoggerConfig = setLoggerConfig;
exports.getLogger = getLogger;
const pino_1 = __importDefault(require("pino"));
const config_1 = __importDefault(require("config"));
// const isProd = process.env.NODE_ENV === 'production';
// モジュールごとのロガーをキャッシュ
const loggers = {};
// デフォルトの設定(このlibrary標準の動き)
const defaultLoggerOptions = {
level: 'warn',
moduleLogLevels: {
FileClassRepository: 'info',
GenerateMappingClassUserCase: 'info',
},
transport: undefined,
};
const isBrowser = typeof window !== 'undefined';
// 外から設定を上書きできるようにしておく
let loggerConfig = {
...defaultLoggerOptions,
...(isBrowser
? {} // ブラウザでは config 無効
: config_1.default.has('excel-csv-read-write-logger')
? config_1.default.get('excel-csv-read-write-logger')
: {}),
};
function setLoggerConfig(config) {
loggerConfig = {
...defaultLoggerOptions,
...config,
};
console.log(config);
// 必要なら既存ログレベルをリセットして再構築する処理も入れられる
for (const key of Object.keys(loggers)) {
delete loggers[key];
}
}
/**
* モジュール名を指定して Logger を取得。
* 初回アクセス時に生成し、以後はキャッシュされたものを返す。
*/
function getLogger(moduleName) {
if (!loggers[moduleName]) {
const { transport, moduleLogLevels, level: loglevel } = loggerConfig;
const level = moduleLogLevels[moduleName] ?? loglevel;
// console.log(`${moduleName}はなかったので${level}で作る`)
loggers[moduleName] = (0, pino_1.default)({
level,
transport,
}).child({ module: moduleName });
}
return loggers[moduleName];
}
//# sourceMappingURL=logger.js.map