Documentation for a newer release is available. View Latest

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