in packages/app/src/logEntryProcessing.ts [175:204]
export function createStructuredLog(
logGroup: string,
logStream: string,
logEvent: CloudWatchLogsLogEvent,
extraFields: StructuredFields,
): PublishableStructuredLogData {
const structuredLog = parseLambdaLogLine(logGroup, logEvent.message.trim());
const timestamp: string = structuredLog.timestamp
? (structuredLog.timestamp as string)
: new Date(logEvent.timestamp).toISOString();
const publishable: PublishableStructuredLogData = {
...structuredLog,
'@timestamp': timestamp,
cloudwatchId: logEvent.id,
cloudwatchLogGroup: logGroup,
cloudwatchLogStream: logStream,
};
return Object.keys(extraFields).reduce(
(acc: PublishableStructuredLogData, key) => {
if (acc[key]) {
acc[`overwrittenFields.${key}`] = acc[key];
}
acc[key] = extraFields[key];
return acc;
},
publishable,
);
}