SLING-10066 - Improve logging
diff --git a/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeper.java b/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeper.java
index 30e761b..3d87eb2 100644
--- a/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeper.java
+++ b/src/main/java/org/apache/sling/distribution/journal/bookkeeper/BookKeeper.java
@@ -28,6 +28,7 @@
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
@@ -140,8 +141,9 @@
* once, thanks to the order in which the content updates are applied.
*/
public void importPackage(PackageMessage pkgMsg, long offset, long createdTime) throws DistributionException {
- log.info("Importing distribution package {} of type {} at offset {}",
- pkgMsg.getPkgId(), pkgMsg.getReqType(), offset);
+ String firstPath = getFirstPath(pkgMsg);
+ log.info("Importing distribution package {} of type {} at offset {} first path {} url {}",
+ pkgMsg.getPkgId(), pkgMsg.getReqType(), offset, firstPath, pkgMsg.getPkgBinaryRef());
addPackageMDC(pkgMsg);
try (Timer.Context context = distributionMetricsService.getImportedPackageDuration().time();
ResourceResolver importerResolver = getServiceResolver(SUBSERVICE_IMPORTER)) {
@@ -191,16 +193,22 @@
String pubAgentName = pkgMsg.getPubAgentName();
int retries = packageRetries.get(pubAgentName);
- if (errorQueueEnabled && retries >= config.getMaxRetries()) {
- log.warn("Failed to import distribution package {} at offset {} after {} retries, removing the package. Url {}",
- pkgMsg.getPkgId(), offset, retries, pkgMsg.getPkgBinaryRef());
+ boolean giveUp = errorQueueEnabled && retries >= config.getMaxRetries();
+ String retriesSt = errorQueueEnabled ? Integer.toString(config.getMaxRetries()) : "infinite";
+ String action = giveUp ? "removing the package" : "retrying";
+ String firstPath = getFirstPath(pkgMsg);
+ String msg = format("Error processing distribution package %s at offset %d first path %s. Retry attempts %s/%s. Url: %s, %s, Message: %s", pkgMsg.getPkgId(), offset, firstPath, retries, retriesSt, pkgMsg.getPkgBinaryRef(), action, e.getMessage());
+ try {
+ LogMessage logMessage = getLogMessage(pubAgentName, msg, e);
+ logSender.accept(logMessage);
+ } catch (Exception e2) {
+ log.warn("Error sending log message", e2);
+ };
+ if (giveUp) {
+ log.warn(msg, e);
removeFailedPackage(pkgMsg, offset);
} else {
packageRetries.increase(pubAgentName);
- String retriesSt = errorQueueEnabled ? Integer.toString(config.getMaxRetries()) : "infinite";
- String msg = format("Error processing distribution package %s. Retry attempts %s/%s. Url: {}, Message: %s", pkgMsg.getPkgId(), retries, retriesSt, pkgMsg.getPkgBinaryRef(), e.getMessage());
- LogMessage logMessage = getLogMessage(pubAgentName, msg, e);
- logSender.accept(logMessage);
throw new DistributionException(msg, e);
}
}
@@ -339,6 +347,11 @@
private ResourceResolver getServiceResolver(String subService) throws LoginException {
return resolverFactory.getServiceResourceResolver(singletonMap(SUBSERVICE, subService));
}
+
+ private String getFirstPath(PackageMessage pkg) {
+ Iterator<String> it = pkg.getPaths().iterator();
+ return it.hasNext() ? it.next() : "";
+ }
static void retryDelay() {
try {
diff --git a/src/main/java/org/apache/sling/distribution/journal/bookkeeper/PackageHandler.java b/src/main/java/org/apache/sling/distribution/journal/bookkeeper/PackageHandler.java
index 2847468..7ee64f9 100644
--- a/src/main/java/org/apache/sling/distribution/journal/bookkeeper/PackageHandler.java
+++ b/src/main/java/org/apache/sling/distribution/journal/bookkeeper/PackageHandler.java
@@ -71,7 +71,7 @@
private void installAddPackage(ResourceResolver resolver, PackageMessage pkgMsg)
throws DistributionException {
- LOG.info("Importing paths {}",pkgMsg.getPaths());
+ LOG.debug("Importing paths {}",pkgMsg.getPaths());
InputStream pkgStream = null;
try {
pkgStream = stream(resolver, pkgMsg, binaryStore);
diff --git a/src/main/java/org/apache/sling/distribution/journal/impl/publisher/DistributionPublisher.java b/src/main/java/org/apache/sling/distribution/journal/impl/publisher/DistributionPublisher.java
index 83a7dcf..84aa594 100644
--- a/src/main/java/org/apache/sling/distribution/journal/impl/publisher/DistributionPublisher.java
+++ b/src/main/java/org/apache/sling/distribution/journal/impl/publisher/DistributionPublisher.java
@@ -27,7 +27,6 @@
import static org.apache.sling.distribution.journal.shared.DistributionMetricsService.timed;
import java.io.Closeable;
-import java.util.Arrays;
import java.util.Collections;
import java.util.Dictionary;
import java.util.HashMap;
@@ -275,7 +274,8 @@
);
distributionMetricsService.getExportedPackageSize().update(pkg.getPkgLength());
distributionMetricsService.getAcceptedRequests().mark();
- String msg = String.format("Distribution request accepted with type %s paths %s ", request.getRequestType(), Arrays.toString(request.getPaths()));
+ String firstPath = pkg.getPaths().iterator().next();
+ String msg = String.format("Distribution request accepted with type %s paths %s, url %s", request.getRequestType(), firstPath, pkg.getPkgBinaryRef());
log.info(msg);
return new SimpleDistributionResponse(ACCEPTED, msg);
} catch (Throwable e) {