UNPKG

@grafana/faro-core

Version:
58 lines 2.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initializeLogsAPI = initializeLogsAPI; var transports_1 = require("../../transports"); var utils_1 = require("../../utils"); var date_1 = require("../../utils/date"); var initialize_1 = require("../userActions/initialize"); var const_1 = require("./const"); function initializeLogsAPI(_a) { var _b; var internalLogger = _a.internalLogger, config = _a.config, metas = _a.metas, transports = _a.transports, tracesApi = _a.tracesApi, userActionsApi = _a.userActionsApi; internalLogger.debug('Initializing logs API'); var lastPayload = null; var logArgsSerializer = (_b = config.logArgsSerializer) !== null && _b !== void 0 ? _b : const_1.defaultLogArgsSerializer; var pushLog = function (args, _a) { var _b = _a === void 0 ? {} : _a, context = _b.context, level = _b.level, skipDedupe = _b.skipDedupe, spanContext = _b.spanContext, timestampOverwriteMs = _b.timestampOverwriteMs; try { var ctx = (0, utils_1.stringifyObjectValues)(context); var item = { type: transports_1.TransportItemType.LOG, payload: { message: logArgsSerializer(args), level: level !== null && level !== void 0 ? level : utils_1.defaultLogLevel, context: (0, utils_1.isEmpty)(ctx) ? undefined : ctx, timestamp: timestampOverwriteMs ? (0, date_1.timestampToIsoString)(timestampOverwriteMs) : (0, utils_1.getCurrentTimestamp)(), trace: spanContext ? { trace_id: spanContext.traceId, span_id: spanContext.spanId, } : tracesApi.getTraceContext(), }, meta: metas.value, }; var testingPayload = { message: item.payload.message, level: item.payload.level, context: item.payload.context, }; if (!skipDedupe && config.dedupe && !(0, utils_1.isNull)(lastPayload) && (0, utils_1.deepEqual)(testingPayload, lastPayload)) { internalLogger.debug('Skipping log push because it is the same as the last one\n', item.payload); return; } lastPayload = testingPayload; internalLogger.debug('Pushing log\n', item); if (!(0, initialize_1.addItemToUserActionBuffer)(userActionsApi.getActiveUserAction(), item)) { transports.execute(item); } } catch (err) { internalLogger.error('Error pushing log\n', err); } }; return { pushLog: pushLog, }; } //# sourceMappingURL=initialize.js.map