
com.undefinedlabs.scope.sender.internal.LoggingSender Maven / Gradle / Ivy
package com.undefinedlabs.scope.sender.internal;
import com.undefinedlabs.scope.exceptions.SenderException;
import com.undefinedlabs.scope.exceptions.SerializerException;
import com.undefinedlabs.scope.logger.ScopeLogger;
import com.undefinedlabs.scope.logger.ScopeLoggerResolver;
import com.undefinedlabs.scope.reporter.internal.remote.model.ScopeData;
import com.undefinedlabs.scope.sender.Sender;
import com.undefinedlabs.scope.sender.internal.serializers.JsonSerializer;
import com.undefinedlabs.scope.sender.internal.serializers.Serializer;
public class LoggingSender implements Sender {
private final ScopeLogger logger;
private final Serializer serializer;
public LoggingSender() {
this(null, null);
}
public LoggingSender(final ScopeLogger logger, final Serializer serializer) {
this.logger = (logger != null) ? logger : ScopeLoggerResolver.INSTANCE.get();
this.serializer = (serializer != null) ? serializer : new JsonSerializer();
}
@Override
public boolean send(ScopeData scopeData) throws SenderException {
try {
this.logger.info(this.serializer.serializeAsString(scopeData));
} catch (SerializerException e) {
throw new SenderException("An error occurred when ScopeData was being serialized.", e);
}
return true;
}
@Override
public void close() {
// Nothing to do
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy