Skip to content

Commit

Permalink
WIP deprecate logInfoWithCorrelationIds & logErrorWithCorrelationIds
Browse files Browse the repository at this point in the history
  • Loading branch information
aurelie-crouillebois committed Jul 5, 2024
1 parent 9ec29d1 commit 457be8c
Showing 1 changed file with 33 additions and 26 deletions.
59 changes: 33 additions & 26 deletions api/src/shared/infrastructure/utils/logger.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,32 +49,14 @@ function extractUserIdFromRequest(request) {
}

function parseDataForLogger(data) {
return typeof data === 'string' || data instanceof String
? {
message: data,
}
: data;
return typeof data === 'string' || data instanceof String ? { message: data } : data;
}

function _logErrorWithCorrelationIds(logger) {
function _logWithCorrelationIds(loggingFunction) {
return function (data) {
const parsedData = parseDataForLogger(data);
const context = getCorrelationContext();
logger.error(
{
...context,
...omit(parsedData, 'message'),
},
get(parsedData, 'message', '-'),
);
};
}

function _logInfoWithCorrelationIds(logger) {
return function (data) {
const parsedData = parseDataForLogger(data);
const context = getCorrelationContext();
logger.info(
loggingFunction(
{
...context,
...omit(parsedData, 'message'),
Expand All @@ -100,14 +82,39 @@ function _logInfoWithCorrelationIds(logger) {
* };
* logErrorWithCorrelationIds(data);
*
* @param {object} data
* @param {object|string} data
* @deprecated use logger#error instead
*/
const logErrorWithCorrelationIds = _logErrorWithCorrelationIds(internalLogger);
const logInfoWithCorrelationIds = _logInfoWithCorrelationIds(internalLogger);
const logErrorWithCorrelationIds = _logWithCorrelationIds(internalLogger.error.bind(internalLogger));

/** @param {object|string} data
* Usage : show logErrorWithCorrelationIds
* @deprecated use logger#info instead
*/
const logInfoWithCorrelationIds = _logWithCorrelationIds(internalLogger.info.bind(internalLogger));

/**
* In order to be displayed properly in Datadog,
* the parameter "data" should contain
* - a required property message as string
* - all other properties you need to pass to Datadog
*
* @example
* const data = {
* message: 'Error message',
* context: 'My Context',
* data: { more: 'data', if: 'needed' },
* event: 'Event which trigger this error',
* team: 'My Team',
* };
* logErrorWithCorrelationIds(data);
*
* @param {object|string} data
* @deprecated use logger#error instead
*/
const logger = {
error: logErrorWithCorrelationIds,
info: logInfoWithCorrelationIds,
error: _logWithCorrelationIds(internalLogger.error.bind(internalLogger)),
info: _logWithCorrelationIds(internalLogger.info.bind(internalLogger)),
warn: internalLogger.warn.bind(internalLogger),
trace: internalLogger.trace.bind(internalLogger),
fatal: internalLogger.fatal.bind(internalLogger),
Expand Down

0 comments on commit 457be8c

Please sign in to comment.