Migrate logging from slf4j to flogger and fix some log statements to join elements of collections to format them properly. Change-Id: I69b640ae98e3a320cdf957b8c84481f406780d1b
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AbstractHealthCheck.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AbstractHealthCheck.java index e65d269..ba6d75a 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AbstractHealthCheck.java +++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AbstractHealthCheck.java
@@ -14,6 +14,7 @@ package com.googlesource.gerrit.plugins.healthcheck.check; +import com.google.common.flogger.FluentLogger; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.gerrit.metrics.Counter0; @@ -25,11 +26,9 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public abstract class AbstractHealthCheck implements HealthCheck { - private static final Logger log = LoggerFactory.getLogger(AbstractHealthCheck.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final long timeout; private final String name; private final ListeningExecutorService executor; @@ -72,7 +71,7 @@ try { healthy = enabled ? doCheck() : Result.DISABLED; } catch (Exception e) { - log.warn("Check {} failed", name, e); + logger.atWarning().withCause(e).log("Check %s failed", name); healthy = Result.FAILED; } Long elapsed = System.currentTimeMillis() - ts; @@ -106,7 +105,7 @@ ListenableFuture<StatusSummary> future, long ts, Exception e, String message, Result result) { future.cancel(true); Long elapsed = System.currentTimeMillis() - ts; - log.warn(message, e); + logger.atWarning().withCause(e).log("%s", message); StatusSummary checkStatusSummary = new StatusSummary(result, ts, elapsed, Collections.emptyMap()); failureCounterMetric.increment();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AuthHealthCheck.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AuthHealthCheck.java index 2dc22dc..ffb7d16 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AuthHealthCheck.java +++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/AuthHealthCheck.java
@@ -16,6 +16,7 @@ import static com.googlesource.gerrit.plugins.healthcheck.check.HealthCheckNames.AUTH; +import com.google.common.flogger.FluentLogger; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.gerrit.metrics.MetricMaker; import com.google.gerrit.server.account.AccountCache; @@ -26,12 +27,10 @@ import com.google.inject.Singleton; import com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig; import java.util.Optional; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; @Singleton public class AuthHealthCheck extends AbstractHealthCheck { - private static final Logger log = LoggerFactory.getLogger(AuthHealthCheck.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final Realm realm; private final AccountCache byIdCache; private final String username; @@ -63,11 +62,11 @@ Optional<AccountState> accountState = byIdCache.getByUsername(username); if (!accountState.isPresent()) { - log.error("Cannot load account state for username " + username); + logger.atSevere().log("Cannot load account state for username %s", username); return Result.FAILED; } if (!accountState.get().account().isActive()) { - log.error("Authentication error, account " + username + " is inactive"); + logger.atSevere().log("Authentication error, account %s is inactive", username); return Result.FAILED; } return Result.PASSED;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsConfigurator.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsConfigurator.java index 40030e1..8bfe53c 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsConfigurator.java +++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsConfigurator.java
@@ -19,6 +19,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableSet; +import com.google.common.flogger.FluentLogger; import com.google.inject.Inject; import com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig; import com.googlesource.gerrit.plugins.healthcheck.check.BlockedThreadsCheck.Collector; @@ -32,12 +33,11 @@ import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.util.stream.Collectors; @VisibleForTesting public class BlockedThreadsConfigurator { - private static final Logger log = LoggerFactory.getLogger(BlockedThreadsConfigurator.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private static final Pattern THRESHOLD_PATTERN = Pattern.compile("^(\\d\\d?)$"); static final int DEFAULT_BLOCKED_THREADS_THRESHOLD = 50; @@ -89,10 +89,10 @@ // check configuration consistency if (specsClassified.size() > 1) { Collection<Threshold> specs = deduplicatePrefixes(specsClassified.get(true)); - log.warn( + logger.atWarning().log( "Global and specific thresholds were configured for blocked threads check. Specific" - + " configuration is used {}.", - specs); + + " configuration is used %s.", + specs.stream().map(Threshold::toString).collect(Collectors.joining(", "))); return specs; } @@ -103,8 +103,8 @@ : deduplicateGlobal(entry.getValue()); } - log.info( - "Default blocked threads check is configured with {}% threshold", + logger.atInfo().log( + "Default blocked threads check is configured with %d%% threshold", DEFAULT_BLOCKED_THREADS_THRESHOLD); return ImmutableSet.of(new Threshold(DEFAULT_BLOCKED_THREADS_THRESHOLD)); } @@ -112,7 +112,7 @@ private static Collection<Threshold> deduplicateGlobal(List<Threshold> input) { if (input.size() > 1) { Threshold spec = input.get(input.size() - 1); - log.warn("Multiple threshold values were configured. Using {}", spec); + logger.atWarning().log("Multiple threshold values were configured. Using %s", spec); return ImmutableSet.of(spec); } return input; @@ -122,10 +122,12 @@ Map<String, Threshold> deduplicated = new HashMap<>(); input.forEach(t -> deduplicated.put(t.prefix.get(), t)); if (deduplicated.size() != input.size()) { - log.warn( + logger.atWarning().log( "The same prefixes were configured multiple times. The following configuration is used" - + " {}", - deduplicated.values()); + + " %s", + deduplicated.values().stream() + .map(Threshold::toString) + .collect(Collectors.joining(", "))); } return deduplicated.values(); } @@ -144,7 +146,7 @@ } } - log.warn("Invalid configuration of blocked threads threshold [{}]", spec); + logger.atWarning().log("Invalid configuration of blocked threads threshold [%s]", spec); return Optional.empty(); }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ChangesIndexHealthCheck.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ChangesIndexHealthCheck.java index 324ec70..ab281f9 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ChangesIndexHealthCheck.java +++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ChangesIndexHealthCheck.java
@@ -16,6 +16,7 @@ import static com.googlesource.gerrit.plugins.healthcheck.check.HealthCheckNames.CHANGES_INDEX; +import com.google.common.flogger.FluentLogger; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.gerrit.index.IndexType; import com.google.gerrit.metrics.MetricMaker; @@ -34,12 +35,10 @@ import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.storage.file.FileBasedConfig; import org.eclipse.jgit.util.FS; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; @Singleton public class ChangesIndexHealthCheck extends AbstractHealthCheck implements OnlineUpgradeListener { - private static final Logger log = LoggerFactory.getLogger(QueryChangesHealthCheck.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private static final String lockFilename = "write.lock"; private final SitePaths sitePaths; @@ -82,13 +81,13 @@ Optional.of( getChangesLockFiles(sitePaths.index_dir, String.format("changes_%04d", newVersion))); if (!changes.compareAndSet(changes.get(), newLockFiles)) { - log.info( - "New version {} of changes index healthcheck lock files was set already by another" + logger.atInfo().log( + "New version %d of changes index healthcheck lock files was set already by another" + " thread", newVersion); } else { - log.info( - "Changes index healthcheck switched from index version {} to {}", oldVersion, newVersion); + logger.atInfo().log( + "Changes index healthcheck switched from index version %d to %d", oldVersion, newVersion); } } @@ -99,8 +98,8 @@ IndexType indexType = new IndexType(cfg.getString("index", null, "type")); boolean isLucene = indexType.isLucene(); if (!isLucene) { - log.warn( - "Configured index type [{}] is not supported for index health check therefore it is" + logger.atWarning().log( + "Configured index type [%s] is not supported for index health check therefore it is" + " disabled.", indexType); } @@ -119,7 +118,7 @@ return getActiveIndexVersion(cfg, "changes") .map(version -> getChangesLockFiles(indexDir, version)); } catch (IOException | ConfigInvalidException e) { - log.error("Getting changes index version from configuration failed", e); + logger.atSevere().withCause(e).log("Getting changes index version from configuration failed"); } return Optional.empty(); }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ProjectsListHealthCheck.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ProjectsListHealthCheck.java index d448cf4..6a4f166 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ProjectsListHealthCheck.java +++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/ProjectsListHealthCheck.java
@@ -16,6 +16,7 @@ import static com.googlesource.gerrit.plugins.healthcheck.check.HealthCheckNames.PROJECTSLIST; +import com.google.common.flogger.FluentLogger; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.gerrit.extensions.common.ProjectInfo; import com.google.gerrit.metrics.MetricMaker; @@ -27,12 +28,10 @@ import com.google.inject.Singleton; import com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig; import java.util.SortedMap; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; @Singleton public class ProjectsListHealthCheck extends AbstractHealthCheck { - private static final Logger log = LoggerFactory.getLogger(ProjectsListHealthCheck.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private static final int PROJECTS_LIST_LIMIT = 100; private final Provider<ListProjects> listProjectsProvider; private final OneOffRequestContext oneOffCtx; @@ -63,9 +62,10 @@ if (projects != null && projects.size() > 0) { return Result.PASSED; } - log.warn("Empty or null projects list: Gerrit should always have at least 1 project"); + logger.atWarning().log( + "Empty or null projects list: Gerrit should always have at least 1 project"); } catch (Exception e) { - log.warn("Unable to list projects", e); + logger.atWarning().withCause(e).log("Unable to list projects"); } return Result.FAILED; }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/QueryChangesHealthCheck.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/QueryChangesHealthCheck.java index 7165b9f..c9bc3d1 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/QueryChangesHealthCheck.java +++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/QueryChangesHealthCheck.java
@@ -16,6 +16,7 @@ import static com.googlesource.gerrit.plugins.healthcheck.check.HealthCheckNames.QUERYCHANGES; +import com.google.common.flogger.FluentLogger; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.gerrit.metrics.MetricMaker; import com.google.gerrit.server.restapi.change.QueryChanges; @@ -26,12 +27,10 @@ import com.google.inject.Singleton; import com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; @Singleton public class QueryChangesHealthCheck extends AbstractHealthCheck { - private static final Logger log = LoggerFactory.getLogger(QueryChangesHealthCheck.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final Provider<QueryChanges> queryChangesProvider; private final int limit; private final OneOffRequestContext oneOffCtx; @@ -62,15 +61,14 @@ List<?> changes = queryChanges.apply(null).value(); if (changes == null) { - log.warn("Cannot query changes: received a null list of results"); + logger.atWarning().log("Cannot query changes: received a null list of results"); return Result.FAILED; } if (changes.size() < limit) { - log.warn( - "Query changes did not return enough items: expected {} items but got only {}", - limit, - changes.size()); + logger.atWarning().log( + "Query changes did not return enough items: expected %d items but got only %d", + limit, changes.size()); return Result.FAILED; }