"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.attachLoggerStream = attachLoggerStream; exports.clearNotification = clearNotification; exports.getLogger = getLogger; exports.logDebug = logDebug; exports.logError = logError; exports.logInfo = logInfo; exports.logWarning = logWarning; exports.logWithLevel = logWithLevel; function _path() { const data = _interopRequireDefault(require("path")); _path = function () { return data; }; return data; } function _internal() { const data = require("../internal"); _internal = function () { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const MAX_MESSAGE_LENGTH = 200; const _projectRootToLogger = {}; function _getLogger(projectRoot) { let logger = _projectRootToLogger[projectRoot]; if (!logger) { logger = _internal().Logger.child({ type: 'project', project: _path().default.resolve(projectRoot) }); _projectRootToLogger[projectRoot] = logger; } return logger; } function getLogger(projectRoot) { return _getLogger(projectRoot); } function logWithLevel(projectRoot, level, fields, msg, id) { if (id) { fields.issueId = id; } const logger = _getLogger(projectRoot); switch (level) { case 'debug': logger.debug(fields, msg); break; case 'info': logger.info(fields, msg); break; case 'warn': logger.warn(fields, msg); break; case 'error': logger.error(fields, msg); break; default: logger.debug(fields, msg); break; } } function logDebug(projectRoot, tag, message, id) { _getLogger(projectRoot).debug({ tag }, message.toString()); } function logInfo(projectRoot, tag, message, id) { const fields = { tag }; if (id) { fields.issueId = id; } _getLogger(projectRoot).info(fields, message.toString()); } function logError(projectRoot, tag, message, id) { const fields = { tag }; if (id) { fields.issueId = id; } _getLogger(projectRoot).error(fields, message.toString()); let truncatedMessage = message.toString(); if (truncatedMessage.length > MAX_MESSAGE_LENGTH) { truncatedMessage = truncatedMessage.substring(0, MAX_MESSAGE_LENGTH); } } function logWarning(projectRoot, tag, message, id) { const fields = { tag }; if (id) { fields.issueId = id; } _getLogger(projectRoot).warn(fields, message.toString()); let truncatedMessage = message.toString(); if (truncatedMessage.length > MAX_MESSAGE_LENGTH) { truncatedMessage = truncatedMessage.substring(0, MAX_MESSAGE_LENGTH); } _internal().Analytics.logEvent('Project Warning', { tag, message: truncatedMessage }); } function clearNotification(projectRoot, id) { _getLogger(projectRoot).info({ tag: 'expo', issueCleared: true, issueId: id }, `No issue with ${id}`); } function attachLoggerStream(projectRoot, stream) { _getLogger(projectRoot).addStream(stream); } //# sourceMappingURL=ProjectUtils.js.map