/**
* Strips metadata from log entries.
*
* @param {any} logEntry The log entry to process.
* @returns {any} The log entry with metadata stripped, or the original entry if an error occurs.
*/
function stripMetadata(logEntry) {
try {
// Check if the log entry is an object.
if (typeof logEntry === 'object' && logEntry !== null) {
// Create a copy to avoid modifying the original object.
const strippedEntry = { ...logEntry };
// Remove common metadata fields. Add more as needed.
delete strippedEntry.timestamp;
delete strippedEntry.source;
delete strippedEntry.level;
delete strippedEntry.hostname;
delete strippedEntry.pid;
delete strippedEntry.tid;
delete strippedEntry.processName;
delete strippedEntry.user;
delete strippedEntry.address;
delete strippedEntry.functionName;
delete strippedEntry.line;
return strippedEntry;
} else {
// If not an object, return the entry as is.
return logEntry;
}
} catch (error) {
// Handle errors gracefully. Log the error for debugging.
console.error("Error stripping metadata:", error);
return logEntry; // Return original on failure.
}
}
// Example Usage (for testing)
// const logEntry = {
// timestamp: Date.now(),
// source: "my_app",
// level: "INFO",
// message: "This is a log message",
// hostname: "localhost",
// pid: 1234,
// functionName: "myFunction",
// line: 10,
// };
//
// const strippedLogEntry = stripMetadata(logEntry);
// console.log(strippedLogEntry);
Add your comment