package org.apereo.cas.logging; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.impl.Log4jLogEvent; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.SimpleMessage; import org.apereo.cas.util.serialization.TicketIdSanitizationUtils; /** * This is {@link LoggingUtils}. * * @author Misagh Moayyed * @since 5.1.0 */ public final class LoggingUtils { private LoggingUtils() { } /** * Prepare log event log event. * * @param logEvent the log event * @return the log event */ public static LogEvent prepareLogEvent(final LogEvent logEvent) { final String messageModified = TicketIdSanitizationUtils.sanitize(logEvent.getMessage().getFormattedMessage()); final Message message = new SimpleMessage(messageModified); final LogEvent newLogEvent = Log4jLogEvent.newBuilder() .setLevel(logEvent.getLevel()) .setLoggerName(logEvent.getLoggerName()) .setLoggerFqcn(logEvent.getLoggerFqcn()) .setContextMap(logEvent.getContextMap()) .setContextStack(logEvent.getContextStack()) .setEndOfBatch(logEvent.isEndOfBatch()) .setIncludeLocation(logEvent.isIncludeLocation()) .setMarker(logEvent.getMarker()) .setMessage(message) .setNanoTime(logEvent.getNanoTime()) .setSource(logEvent.getSource()) .setThreadName(logEvent.getThreadName()) .setThrownProxy(logEvent.getThrownProxy()) .setThrown(logEvent.getThrown()) .setTimeMillis(logEvent.getTimeMillis()) .build(); return newLogEvent; } }