findowners: migrate to Flogger
Gerrit core has been migrated to Flogger. Let's migrate this plugin,
too.
Change-Id: Iaff2922298d7da70b55fd93765592baf7eba2af9
diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/Action.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/Action.java
index 361cecc..d0c642f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/Action.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/Action.java
@@ -18,6 +18,7 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Streams;
+import com.google.common.flogger.FluentLogger;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.restapi.BadRequestException;
import com.google.gerrit.extensions.restapi.Response;
@@ -51,13 +52,10 @@
import java.util.Objects;
import java.util.Set;
import org.eclipse.jgit.lib.Repository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/** Create and return OWNERS info when "Find Owners" button is clicked. */
class Action implements RestReadView<RevisionResource>, UiAction<RevisionResource> {
-
- private static final Logger log = LoggerFactory.getLogger(Action.class);
+ private static final FluentLogger logger = FluentLogger.forEnclosingClass();
private AccountCache accountCache;
private Emails emails;
@@ -156,7 +154,7 @@
.filter(Objects::nonNull)
.collect(toList());
} catch (OrmException e) {
- log.error("Exception for " + Config.getChangeId(changeData), e);
+ logger.atSevere().withCause(e).log("Exception for %s", Config.getChangeId(changeData));
return new ArrayList<>();
}
}
@@ -220,7 +218,7 @@
changeData = changeDataFactory.create(reviewDb, change);
if (changeData.change().getDest().get() == null) {
if (!Checker.isExemptFromOwnerApproval(changeData)) {
- log.error("Cannot get branch of change: " + changeData.getId().get());
+ logger.atSevere().log("Cannot get branch of change: %d", changeData.getId().get());
}
return null; // no "Find Owners" button
}
@@ -243,7 +241,7 @@
emails,
repo,
changeData);
- log.trace("getDescription db key = " + db.key);
+ logger.atFiner().log("getDescription db key = %s", db.key);
needFindOwners = db.getNumOwners() > 0;
}
}
@@ -252,7 +250,7 @@
.setTitle("Find owners to add to Reviewers list")
.setVisible(needFindOwners);
} catch (IOException | OrmException e) {
- log.error("Exception for " + Config.getChangeId(changeData), e);
+ logger.atSevere().withCause(e).log("Exception for %s", Config.getChangeId(changeData));
throw new IllegalStateException(e);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java
index 3f48166..f1a2bee 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java
@@ -17,6 +17,7 @@
import static java.util.concurrent.TimeUnit.SECONDS;
import com.google.common.cache.CacheBuilder;
+import com.google.common.flogger.FluentLogger;
import com.google.gerrit.server.account.AccountCache;
import com.google.gerrit.server.account.Emails;
import com.google.gerrit.server.project.ProjectState;
@@ -27,12 +28,10 @@
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import org.eclipse.jgit.lib.Repository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/** Save OwnersDb in a cache for multiple calls to submit_filter. */
class Cache {
- private static final Logger log = LoggerFactory.getLogger(Cache.class);
+ private static final FluentLogger logger = FluentLogger.forEnclosingClass();
// The OwnersDb is created from OWNERS files in directories that
// contain changed files of a patch set, which belongs to a project
@@ -74,14 +73,14 @@
dbCache.invalidateAll(); // release all cached objects
}
if (maxSeconds > 0) {
- log.info("Initialize Cache with maxSeconds=" + maxSeconds + " maxSize=" + maxSize);
+ logger.atInfo().log("Initialize Cache with maxSeconds=%d maxSize=%d", maxSeconds, maxSize);
dbCache =
CacheBuilder.newBuilder()
.maximumSize(maxSize)
.expireAfterWrite(maxSeconds, SECONDS)
.build();
} else {
- log.info("Cache disabled.");
+ logger.atInfo().log("Cache disabled.");
dbCache = null;
}
return this;
@@ -138,24 +137,26 @@
String branch,
Collection<String> files) {
if (dbCache == null) { // Do not cache OwnersDb
- log.trace("Create new OwnersDb, key=" + key);
+ logger.atFiner().log("Create new OwnersDb, key=%s", key);
return new OwnersDb(
projectState, accountCache, emails, key, repository, changeData, branch, files);
}
try {
- log.trace("Get from cash " + dbCache + ", key=" + key + ", cache size=" + dbCache.size());
+ logger.atFiner().log(
+ "Get from cache %s, key=%s, cache size=%d", dbCache, key, dbCache.size());
return dbCache.get(
key,
new Callable<OwnersDb>() {
@Override
public OwnersDb call() {
- log.trace("Create new OwnersDb, key=" + key);
+ logger.atFiner().log("Create new OwnersDb, key=%s", key);
return new OwnersDb(
projectState, accountCache, emails, key, repository, changeData, branch, files);
}
});
} catch (ExecutionException e) {
- log.error("Cache.get has exception for " + Config.getChangeId(changeData), e);
+ logger.atSevere().withCause(e).log(
+ "Cache.get has exception for %s", Config.getChangeId(changeData));
return new OwnersDb(
projectState, accountCache, emails, key, repository, changeData, branch, files);
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/Checker.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/Checker.java
index 30d1a4c..2d71283 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/Checker.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/Checker.java
@@ -14,6 +14,7 @@
package com.googlesource.gerrit.plugins.findowners;
+import com.google.common.flogger.FluentLogger;
import com.google.gerrit.reviewdb.client.Change.Status;
import com.google.gerrit.reviewdb.client.PatchSetApproval;
import com.google.gerrit.server.account.AccountCache;
@@ -29,12 +30,10 @@
import java.util.Optional;
import java.util.Set;
import org.eclipse.jgit.lib.Repository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/** Check if a change needs owner approval. */
public class Checker {
- private static final Logger log = LoggerFactory.getLogger(Checker.class);
+ private static final FluentLogger logger = FluentLogger.forEnclosingClass();
// Accept both "Exempt-" and "Exempted-".
private static final String EXEMPT_MESSAGE1 = "Exempt-From-Owner-Approval:";
@@ -122,7 +121,7 @@
return new Checker(repository, changeData, minVoteLevel)
.findApproval(projectState, accountCache, emails);
} catch (OrmException | IOException e) {
- log.error("Exception for " + Config.getChangeId(changeData), e);
+ logger.atSevere().withCause(e).log("Exception for %s ", Config.getChangeId(changeData));
return 0; // owner approval may or may not be required.
}
}
@@ -135,7 +134,8 @@
return true;
}
} catch (IOException | OrmException e) {
- log.error("Cannot get commit message for " + Config.getChangeId(changeData), e);
+ logger.atSevere().withCause(e).log(
+ "Cannot get commit message for %s", Config.getChangeId(changeData));
return true; // exempt from owner approval due to lack of data
}
// Abandoned and merged changes do not need approval again.
@@ -158,7 +158,7 @@
if (minVoteLevel <= 0) {
minVoteLevel = Config.getMinOwnerVoteLevel(projectState, changeData);
}
- log.trace("findApproval db key = " + db.key);
+ logger.atFiner().log("findApproval db key = %s", db.key);
return findApproval(accountCache, db);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/Config.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/Config.java
index c09b3df..537df74 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/Config.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/Config.java
@@ -15,12 +15,11 @@
package com.googlesource.gerrit.plugins.findowners;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.flogger.FluentLogger;
import com.google.gerrit.server.config.PluginConfig;
import com.google.gerrit.server.config.PluginConfigFactory;
import com.google.gerrit.server.project.ProjectState;
import com.google.gerrit.server.query.change.ChangeData;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/** find-owners configuration parameters */
class Config {
@@ -48,7 +47,7 @@
private static boolean reportSyntaxError = false;
private static boolean alwaysShowButton = false;
- private static final Logger log = LoggerFactory.getLogger(Config.class);
+ private static final FluentLogger logger = FluentLogger.forEnclosingClass();
static void setVariables(String pluginName, PluginConfigFactory conf) {
if (conf == null) { // When called from integration tests.
@@ -95,21 +94,18 @@
static String getOwnersFileName(ProjectState projectState, ChangeData c) {
if (projectState == null) {
- log.error("Null projectState for change " + getChangeId(c));
+ logger.atSevere().log("Null projectState for change %s", getChangeId(c));
} else if (config != null) {
String name =
config
.getFromProjectConfigWithInheritance(projectState, PLUGIN_NAME)
.getString(OWNERS_FILE_NAME, OWNERS);
if (name.trim().equals("")) {
- log.error(
- "Project "
+ logger.atSevere().log(
+ "Project %s has wrong %s: \"%s\" for %s"
+ projectState.getProject()
- + " has wrong "
+ OWNERS_FILE_NAME
- + ": \""
+ name
- + "\" for "
+ getChangeId(c));
return OWNERS;
}
@@ -125,7 +121,7 @@
static int getMinOwnerVoteLevel(ProjectState projectState, ChangeData c) {
if (projectState == null) {
- log.error("Null projectState for change " + getChangeId(c));
+ logger.atSevere().log("Null projectState for change %s", getChangeId(c));
return minOwnerVoteLevel;
} else if (config == null) {
return minOwnerVoteLevel;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/GetOwners.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/GetOwners.java
index 322a3b5..c62a909 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/GetOwners.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/GetOwners.java
@@ -14,6 +14,7 @@
package com.googlesource.gerrit.plugins.findowners;
+import com.google.common.flogger.FluentLogger;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.restapi.BadRequestException;
import com.google.gerrit.extensions.restapi.Response;
@@ -33,12 +34,10 @@
import com.google.inject.Provider;
import java.io.IOException;
import org.kohsuke.args4j.Option;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/** REST API to get owners of a change. */
public class GetOwners implements RestReadView<ChangeResource> {
- private static final Logger log = LoggerFactory.getLogger(GetOwners.class);
+ private static final FluentLogger logger = FluentLogger.forEnclosingClass();
private final Action action;
@@ -84,7 +83,7 @@
} catch (BadRequestException e) {
// Catch this exception to avoid too many call stack dumps
// from bad wrong client requests.
- log.error("Exception: " + e);
+ logger.atSevere().log("Exception: " + e);
return Response.none();
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java
index bd84c13..227369a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/OwnersDb.java
@@ -17,6 +17,7 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.common.collect.Multimap;
+import com.google.common.flogger.FluentLogger;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.server.account.AccountCache;
import com.google.gerrit.server.account.Emails;
@@ -39,12 +40,10 @@
import org.eclipse.jgit.revwalk.RevTree;
import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.treewalk.TreeWalk;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/** Keep all information about owners and owned files. */
class OwnersDb {
- private static final Logger log = LoggerFactory.getLogger(OwnersDb.class);
+ private static final FluentLogger logger = FluentLogger.forEnclosingClass();
private AccountCache accountCache;
private Emails emails;
@@ -101,7 +100,8 @@
try {
revision = repository.exactRef(branch).getObjectId().getName();
} catch (Exception e) {
- log.error("Fail to get branch revision for " + Config.getChangeId(changeData), e);
+ logger.atSevere().withCause(e).log(
+ "Fail to get branch revision for %s", Config.getChangeId(changeData));
}
}
countNumOwners(files);
@@ -140,7 +140,7 @@
try {
email2ids = emails.getAccountsFor(ownerEmailsAsArray);
} catch (Exception e) {
- log.error("accounts.byEmails failed with exception: ", e);
+ logger.atSevere().withCause(e).log("accounts.byEmails failed");
}
for (String owner : ownerEmailsAsArray) {
String email = owner;
@@ -161,7 +161,7 @@
}
}
} catch (Exception e) {
- log.error("Fail to find preferred email of " + owner, e);
+ logger.atSevere().withCause(e).log("Fail to find preferred email of %s", owner);
errors.add(owner);
}
preferredEmails.put(owner, email);
@@ -182,8 +182,8 @@
}
}
if (Config.getReportSyntaxError()) {
- result.warnings.forEach(w -> log.warn(w));
- result.errors.forEach(w -> log.error(w));
+ result.warnings.forEach(w -> logger.atWarning().log(w));
+ result.errors.forEach(w -> logger.atSevere().log(w));
}
}
@@ -298,11 +298,13 @@
try {
ObjectId id = repo.resolve(branch);
if (id == null && changeData != null && !Checker.isExemptFromOwnerApproval(changeData)) {
- log.error("cannot find branch " + branch + " for " + Config.getChangeId(changeData));
+ logger.atSevere().log(
+ "cannot find branch %s for %s", branch, Config.getChangeId(changeData));
}
return id;
} catch (Exception e) {
- log.error("cannot find branch " + branch + " for " + Config.getChangeId(changeData), e);
+ logger.atSevere().withCause(e).log(
+ "cannot find branch %s for %s", branch, Config.getChangeId(changeData));
}
return null;
}
@@ -317,7 +319,7 @@
return new String(reader.open(treeWalk.getObjectId(0)).getBytes(), UTF_8);
}
} catch (Exception e) {
- log.error("get file " + file, e);
+ logger.atSevere().withCause(e).log("get file %s", file);
}
return "";
}