@tableau/taco-toolkit
Version:
Tableau Connector Toolkit
126 lines • 8.91 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createLoggerConfig = exports.Logger = exports.EPS_LOG_FILE_NAME = void 0;
var path_1 = __importDefault(require("path"));
var log_level_1 = require("../../shared/logger/log-level");
var logger_1 = require("../../shared/logger/logger");
var file_1 = require("../../shared/logger/writer/file");
var nodejs_console_1 = require("../../shared/logger/writer/nodejs-console");
var file_path_1 = require("../utils/file-path");
var eps_log_serializer_1 = require("./eps-log-serializer");
var app_log_option_1 = require("../types/app-log-option");
exports.EPS_LOG_FILE_NAME = 'eps';
var Logger = /** @class */ (function () {
function Logger() {
}
Logger.init = function (epsInstanceId, config) {
if (Logger.instance !== undefined) {
Logger.warn('Logger has already been initialized! Skipping...');
return;
}
var writers = getWriters(epsInstanceId, config);
Logger.instance = new logger_1.Logger({
writers: writers,
serializer: eps_log_serializer_1.serialize,
});
};
Logger.info = function (message, options) {
if (Logger.instance) {
Logger.instance.info(message, options);
}
};
Logger.error = function (message, options) {
if (Logger.instance) {
Logger.instance.error(message, options);
}
};
Logger.warn = function (message, options) {
if (Logger.instance) {
Logger.instance.warn(message, options);
}
};
Logger.debug = function (message, options) {
if (Logger.instance) {
Logger.instance.debug(message, options);
}
};
Logger.logEPSError = function (statusCode, errorSource, epsErrorCode, message, options) {
var errorInfo = {
'Status Code': statusCode,
'Error Source': errorSource,
'EPS Error Code': epsErrorCode,
};
if (message instanceof Error) {
// if message is an error, log it here so that the original stack can be logged.
Logger.error(message);
errorInfo['Error Message'] = message.message;
}
else {
errorInfo['Error Message'] = message;
}
Logger.error(errorInfo, options);
};
return Logger;
}());
exports.Logger = Logger;
function getEPSLogDir(rootDir, epsInstanceId) {
// Currently, the log dir path may be sent via a request from monolith.
// In some cases, the path may contain quotes...
return path_1.default.join((0, file_path_1.trimQuotes)(rootDir), 'EPS', epsInstanceId);
}
function isConsoleOnlyLoggerConfig(config) {
return config.consoleLogLevel !== undefined && !('fileLogDirPath' in config);
}
function getWriters(epsInstanceId, config) {
var sourceName = config.sourceName, consoleLogLevel = config.consoleLogLevel;
if (isConsoleOnlyLoggerConfig(config)) {
return [
new nodejs_console_1.NodeJsConsoleWriter({
sourceName: sourceName,
level: consoleLogLevel,
includeTimeStamp: true,
}),
];
}
var fileLogLevel = config.fileLogLevel, fileLogDirPath = config.fileLogDirPath, filename = config.filename;
var writers = [
new file_1.FileWriter({
filename: filename,
sourceName: sourceName,
level: fileLogLevel ? fileLogLevel : log_level_1.LogLevel.DEBUG,
dirPath: getEPSLogDir(fileLogDirPath, epsInstanceId),
}),
];
if (consoleLogLevel) {
writers.push(new nodejs_console_1.NodeJsConsoleWriter({
sourceName: sourceName,
level: consoleLogLevel,
includeTimeStamp: true,
}));
}
return writers;
}
function createLoggerConfig(sourceName, appLogOption) {
if ((0, app_log_option_1.isConsoleOnlyAppLogOption)(appLogOption)) {
return {
consoleLogLevel: appLogOption.consoleLogLevel,
sourceName: sourceName,
};
}
var logDir = appLogOption.logDir, logLevel = appLogOption.logLevel, consoleLogLevel = appLogOption.consoleLogLevel;
var loggerConfig = {
sourceName: sourceName,
filename: exports.EPS_LOG_FILE_NAME,
fileLogDirPath: logDir,
fileLogLevel: logLevel,
};
if (consoleLogLevel) {
loggerConfig.consoleLogLevel = consoleLogLevel;
}
return loggerConfig;
}
exports.createLoggerConfig = createLoggerConfig;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBzLWxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lcHMvbG9nZ2luZy9lcHMtbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUF1QjtBQUt2QiwyREFBd0Q7QUFFeEQscURBQWlFO0FBQ2pFLHdEQUE0RDtBQUM1RCw0RUFBK0U7QUFFL0UsZ0RBQStDO0FBQy9DLDJEQUFnRDtBQUNoRCwwREFBaUY7QUFpQnBFLFFBQUEsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO0FBRXRDO0lBR0U7SUFBdUIsQ0FBQztJQUVqQixXQUFJLEdBQVgsVUFBWSxhQUFxQixFQUFFLE1BQXVCO1FBQ3hELElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxrREFBa0QsQ0FBQyxDQUFBO1lBQy9ELE9BQU07U0FDUDtRQUVELElBQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFFakQsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQVUsQ0FBQztZQUMvQixPQUFPLFNBQUE7WUFDUCxVQUFVLEVBQUUsOEJBQVM7U0FDdEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVNLFdBQUksR0FBWCxVQUFZLE9BQWdCLEVBQUUsT0FBb0I7UUFDaEQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTtTQUN2QztJQUNILENBQUM7SUFFTSxZQUFLLEdBQVosVUFBYSxPQUFnQixFQUFFLE9BQW9CO1FBQ2pELElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNuQixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7U0FDeEM7SUFDSCxDQUFDO0lBRU0sV0FBSSxHQUFYLFVBQVks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