Mongo MessageLogger
| Antes de decidir usar un logger específico, vale la pena considerar cómo el registro de mensajes y otros datos encaja en su estrategia general. Por ejemplo, si está usando ODS, debería usar las implementaciones de MessageLogger proporcionadas por IPF Processing Data, específicamente vea Processing Data egress. |
Message-logger-impl proporciona una implementación Mongo de MessageLogger, y su implementación específica de logMessage guarda el messageLogEntry en un repositorio Mongo:
@Override
public void logMessage(final MessageLogEntry messageLogEntry) {
var mongoMessageLogEntry = new com.iconsolutions.ipf.core.messagelogger.mongo.MessageLogEntry(
messageLogEntry.getMessageTime(),
messageLogEntry.getProcessingContext(),
messageLogEntry.getMessageType(),
messageLogEntry.getDirection().name(),
messageLogEntry.getSupportingData(),
messageLogEntry.getMessage()
);
Mono.defer(() -> messageLogRepository.save(mongoMessageLogEntry))
.retryWhen(repositoryRetryProvider.retry())
.subscribe();
}
También puede ver arriba cómo se accede al Mongo MessageLogEntry; su definición es:
class MessageLogEntry {
private Instant messageTime;
private ProcessingContext processingContext;
private String messageType;
private String direction;
private Map<String, Object> supportingData;
private String message;
}
Dependencias
Se proporciona un starter que integrará tanto los loggers de Mongo como de Kafka
<dependency>
<groupId>com.iconsolutions.ipf.core.messagelogger</groupId>
<artifactId>message-logger-starter</artifactId>
</dependency>
Alternativamente, puede incluir solo la dependencia específica de Mongo:
<dependency>
<groupId>com.iconsolutions.ipf.core.messagelogger</groupId>
<artifactId>message-logger-mongo</artifactId>
</dependency>
Configuración
Para configurar el messageLogger que desea usar, deberá establecer lo siguiente en su archivo de configuración de la aplicación:
message.logger.type=mongo
message.logger.enabled=true
Indexación
El Mongo Message Logger tiene una configuración predeterminada para crear índices automáticamente en la inicialización.
Los índices se pueden deshabilitar con:
message.logger.mongo.create-indexes=false
Los índices se pueden deshabilitar globalmente con:
ipf.mongodb.create-indexes=false
Para deshabilitar la indexación globalmente pero mantenerla para el Mongo Message Logger, aplique lo siguiente, manteniendo el orden:
ipf.mongodb.create-indexes=false
message.logger.mongo.create-indexes=true