@datadog/browser-logs
Version:
46 lines • 2.02 kB
JavaScript
import { combine, ErrorSource, timeStampNow, originalConsoleMethods, globalConsole, ConsoleApiName, } from '@datadog/browser-core';
import { HandlerType } from '../logger';
import { isAuthorized, StatusType } from './isAuthorized';
export function startLoggerCollection(lifeCycle) {
function handleLog(logsMessage, logger, handlingStack, savedCommonContext, savedDate) {
const messageContext = combine(logger.getContext(), logsMessage.context);
if (isAuthorized(logsMessage.status, HandlerType.console, logger)) {
displayInConsole(logsMessage, messageContext);
}
if (isAuthorized(logsMessage.status, HandlerType.http, logger)) {
const rawLogEventData = {
rawLogsEvent: {
date: savedDate || timeStampNow(),
message: logsMessage.message,
status: logsMessage.status,
origin: ErrorSource.LOGGER,
},
messageContext,
savedCommonContext,
ddtags: logger.getTags(),
};
if (handlingStack) {
rawLogEventData.domainContext = { handlingStack };
}
lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, rawLogEventData);
}
}
return {
handleLog,
};
}
const loggerToConsoleApiName = {
[]: ConsoleApiName.debug,
[]: ConsoleApiName.debug,
[]: ConsoleApiName.info,
[]: ConsoleApiName.info,
[]: ConsoleApiName.warn,
[]: ConsoleApiName.error,
[]: ConsoleApiName.error,
[]: ConsoleApiName.error,
[]: ConsoleApiName.error,
};
function displayInConsole({ status, message }, messageContext) {
originalConsoleMethods[loggerToConsoleApiName[status]].call(globalConsole, message, messageContext);
}
//# sourceMappingURL=loggerCollection.js.map