From a8fec0e2276b0baf7d0460bd957aed74a6868b7b Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Tue, 8 May 2018 09:09:58 +0200 Subject: [PATCH] Migrate pgm classes to Flogger This is the next part of the migration to Flogger. This change migrates all classes of the 'pgm' module to Flogger. Classes of most other modules have blready een migrated by predecessor changes. Some remaining modules continue to use slf4j. They should be migrated by follow-up changes. During this migration we try to make the log statements more consistent: - avoid string concatenation - avoid usage of String.format(...) Change-Id: I51374131bbd97359ac4552df9878ff7f74c64e21 Signed-off-by: Edwin Kempin --- java/com/google/gerrit/pgm/BUILD | 2 +- java/com/google/gerrit/pgm/Daemon.java | 17 +++---- java/com/google/gerrit/pgm/JythonShell.java | 27 +++++----- .../google/gerrit/pgm/SwitchSecureStore.java | 50 ++++++++++++------- .../google/gerrit/pgm/WarDistribution.java | 8 ++- java/com/google/gerrit/pgm/http/jetty/BUILD | 2 +- .../pgm/http/jetty/HiddenErrorHandler.java | 7 ++- java/com/google/gerrit/pgm/init/BUILD | 2 +- java/com/google/gerrit/pgm/init/BaseInit.java | 9 ++-- .../pgm/init/api/AllProjectsConfig.java | 10 ++-- java/com/google/gerrit/pgm/init/api/BUILD | 2 +- java/com/google/gerrit/pgm/util/BUILD | 1 - .../gerrit/pgm/util/LogFileCompressor.java | 13 +++-- .../gerrit/pgm/util/RuntimeShutdown.java | 11 ++-- .../google/gerrit/pgm/util/ThreadLimiter.java | 7 ++- 15 files changed, 88 insertions(+), 80 deletions(-) diff --git a/java/com/google/gerrit/pgm/BUILD b/java/com/google/gerrit/pgm/BUILD index 76421fcd1f..c83f8af547 100644 --- a/java/com/google/gerrit/pgm/BUILD +++ b/java/com/google/gerrit/pgm/BUILD @@ -51,11 +51,11 @@ java_library( "//lib:servlet-api-3_1-without-neverlink", "//lib/auto:auto-value", "//lib/auto:auto-value-annotations", + "//lib/flogger:api", "//lib/guice", "//lib/guice:guice-assistedinject", "//lib/guice:guice-servlet", "//lib/jgit/org.eclipse.jgit:jgit", - "//lib/log:api", "//lib/log:jsonevent-layout", "//lib/log:log4j", "//lib/prolog:cafeteria", diff --git a/java/com/google/gerrit/pgm/Daemon.java b/java/com/google/gerrit/pgm/Daemon.java index 53e43a234d..d2e518cdbe 100644 --- a/java/com/google/gerrit/pgm/Daemon.java +++ b/java/com/google/gerrit/pgm/Daemon.java @@ -20,6 +20,7 @@ import static java.nio.charset.StandardCharsets.UTF_8; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.MoreObjects; +import com.google.common.flogger.FluentLogger; import com.google.gerrit.common.Nullable; import com.google.gerrit.elasticsearch.ElasticIndexModule; import com.google.gerrit.extensions.client.AuthType; @@ -127,12 +128,10 @@ import javax.servlet.http.HttpServletRequest; import org.eclipse.jgit.lib.Config; import org.kohsuke.args4j.Option; import org.kohsuke.args4j.spi.ExplicitBooleanOptionHandler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** Run SSH daemon portions of Gerrit. */ public class Daemon extends SiteProgram { - private static final Logger log = LoggerFactory.getLogger(Daemon.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); @Option(name = "--enable-httpd", usage = "Enable the internal HTTP daemon") private Boolean httpd; @@ -249,7 +248,7 @@ public class Daemon extends SiteProgram { new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread t, Throwable e) { - log.error("Thread " + t.getName() + " threw exception", e); + logger.atSevere().withCause(e).log("Thread %s threw exception", t.getName()); } }); @@ -269,17 +268,17 @@ public class Daemon extends SiteProgram { start(); RuntimeShutdown.add( () -> { - log.info("caught shutdown, cleaning up"); + logger.atInfo().log("caught shutdown, cleaning up"); stop(); }); - log.info("Gerrit Code Review " + myVersion() + " ready"); + logger.atInfo().log("Gerrit Code Review %s ready", myVersion()); if (runId != null) { try { Files.write(runFile, (runId + "\n").getBytes(UTF_8)); runFile.toFile().setReadable(true, false); } catch (IOException err) { - log.warn("Cannot write --run-id to " + runFile, err); + logger.atWarning().withCause(err).log("Cannot write --run-id to %s", runFile); } } @@ -299,7 +298,7 @@ public class Daemon extends SiteProgram { } return 0; } catch (Throwable err) { - log.error("Unable to start daemon", err); + logger.atSevere().withCause(err).log("Unable to start daemon"); return 1; } } @@ -366,7 +365,7 @@ public class Daemon extends SiteProgram { try { Files.delete(runFile); } catch (IOException err) { - log.warn("failed to delete " + runFile, err); + logger.atWarning().withCause(err).log("failed to delete %s", runFile); } } manager.stop(); diff --git a/java/com/google/gerrit/pgm/JythonShell.java b/java/com/google/gerrit/pgm/JythonShell.java index e1a7bd4f85..35156e18fa 100644 --- a/java/com/google/gerrit/pgm/JythonShell.java +++ b/java/com/google/gerrit/pgm/JythonShell.java @@ -14,6 +14,7 @@ package com.google.gerrit.pgm; +import com.google.common.flogger.FluentLogger; import com.google.gerrit.launcher.GerritLauncher; import java.io.File; import java.io.IOException; @@ -24,11 +25,10 @@ import java.net.URL; import java.net.URLClassLoader; import java.util.ArrayList; import java.util.Properties; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class JythonShell { - private static final Logger log = LoggerFactory.getLogger(JythonShell.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); + private static final String STARTUP_RESOURCE = "com/google/gerrit/pgm/Startup.py"; private static final String STARTUP_FILE = "Startup.py"; @@ -79,7 +79,7 @@ public class JythonShell { try { shell = console.getConstructor(new Class[] {}).newInstance(); - log.info("Jython shell instance created."); + logger.atInfo().log("Jython shell instance created."); } catch (InstantiationException | IllegalAccessException | IllegalArgumentException @@ -170,10 +170,10 @@ public class JythonShell { if (in != null) { execStream(in, "resource " + p); } else { - log.error("Cannot load resource " + p); + logger.atSevere().log("Cannot load resource %s", p); } } catch (IOException e) { - log.error(e.getMessage(), e); + logger.atSevere().withCause(e).log(e.getMessage()); } } @@ -188,15 +188,16 @@ public class JythonShell { new Class[] {String.class}, new Object[] {script.getAbsolutePath()}); } else { - log.info( - "User initialization file " - + script.getAbsolutePath() - + " is not found or not executable"); + logger + .atInfo() + .log( + "User initialization file %s is not found or not executable", + script.getAbsolutePath()); } } catch (InvocationTargetException e) { - log.error("Exception occurred while loading file " + p + " : ", e); + logger.atSevere().withCause(e).log("Exception occurred while loading file %s", p); } catch (SecurityException e) { - log.error("SecurityException occurred while loading file " + p + " : ", e); + logger.atSevere().withCause(e).log("SecurityException occurred while loading file %s", p); } } @@ -209,7 +210,7 @@ public class JythonShell { new Class[] {InputStream.class, String.class}, new Object[] {in, p}); } catch (InvocationTargetException e) { - log.error("Exception occurred while loading " + p + " : ", e); + logger.atSevere().withCause(e).log("Exception occurred while loading %s", p); } } diff --git a/java/com/google/gerrit/pgm/SwitchSecureStore.java b/java/com/google/gerrit/pgm/SwitchSecureStore.java index 1a2216224c..d8f3ffa4bf 100644 --- a/java/com/google/gerrit/pgm/SwitchSecureStore.java +++ b/java/com/google/gerrit/pgm/SwitchSecureStore.java @@ -19,6 +19,7 @@ import static com.google.gerrit.server.schema.DataSourceProvider.Context.SINGLE_ import com.google.common.base.Joiner; import com.google.common.base.Strings; import com.google.common.collect.Iterables; +import com.google.common.flogger.FluentLogger; import com.google.gerrit.common.IoUtil; import com.google.gerrit.common.SiteLibraryLoaderUtil; import com.google.gerrit.pgm.util.SiteProgram; @@ -40,10 +41,10 @@ import org.eclipse.jgit.errors.ConfigInvalidException; import org.eclipse.jgit.storage.file.FileBasedConfig; import org.eclipse.jgit.util.FS; import org.kohsuke.args4j.Option; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class SwitchSecureStore extends SiteProgram { + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); + private static String getSecureStoreClassFromGerritConfig(SitePaths sitePaths) { FileBasedConfig cfg = new FileBasedConfig(sitePaths.gerrit_config.toFile(), FS.DETECTED); try { @@ -54,8 +55,6 @@ public class SwitchSecureStore extends SiteProgram { return cfg.getString("gerrit", null, "secureStoreClass"); } - private static final Logger log = LoggerFactory.getLogger(SwitchSecureStore.class); - @Option( name = "--new-secure-store-lib", usage = "Path to new SecureStore implementation", @@ -68,7 +67,7 @@ public class SwitchSecureStore extends SiteProgram { SitePaths sitePaths = new SitePaths(getSitePath()); Path newSecureStorePath = Paths.get(newSecureStoreLib); if (!Files.exists(newSecureStorePath)) { - log.error("File {} doesn't exist", newSecureStorePath.toAbsolutePath()); + logger.atSevere().log("File %s doesn't exist", newSecureStorePath.toAbsolutePath()); return -1; } @@ -76,18 +75,22 @@ public class SwitchSecureStore extends SiteProgram { String currentSecureStoreName = getCurrentSecureStoreClassName(sitePaths); if (currentSecureStoreName.equals(newSecureStore)) { - log.error( - "Old and new SecureStore implementation names are the same. Migration will not work"); + logger + .atSevere() + .log( + "Old and new SecureStore implementation names " + + "are the same. Migration will not work"); return -1; } IoUtil.loadJARs(newSecureStorePath); SiteLibraryLoaderUtil.loadSiteLib(sitePaths.lib_dir); - log.info( - "Current secureStoreClass property ({}) will be replaced with {}", - currentSecureStoreName, - newSecureStore); + logger + .atInfo() + .log( + "Current secureStoreClass property (%s) will be replaced with %s", + currentSecureStoreName, newSecureStore); Injector dbInjector = createDbInjector(SINGLE_USER); SecureStore currentStore = getSecureStore(currentSecureStoreName, dbInjector); SecureStore newStore = getSecureStore(newSecureStore, dbInjector); @@ -103,7 +106,7 @@ public class SwitchSecureStore extends SiteProgram { } private void migrateProperties(SecureStore currentStore, SecureStore newStore) { - log.info("Migrate entries"); + logger.atInfo().log("Migrate entries"); for (EntryKey key : currentStore.list()) { String[] value = currentStore.getList(key.section, key.subsection, key.name); if (value != null) { @@ -122,26 +125,35 @@ public class SwitchSecureStore extends SiteProgram { private void removeOldLib(SitePaths sitePaths, String currentSecureStoreName) throws IOException { Path oldSecureStore = findJarWithSecureStore(sitePaths, currentSecureStoreName); if (oldSecureStore != null) { - log.info("Removing old SecureStore ({}) from lib/ directory", oldSecureStore.getFileName()); + logger + .atInfo() + .log("Removing old SecureStore (%s) from lib/ directory", oldSecureStore.getFileName()); try { Files.delete(oldSecureStore); } catch (IOException e) { - log.error("Cannot remove {}", oldSecureStore.toAbsolutePath(), e); + logger.atSevere().withCause(e).log("Cannot remove %s", oldSecureStore.toAbsolutePath()); } } else { - log.info( - "Cannot find jar with old SecureStore ({}) in lib/ directory", currentSecureStoreName); + logger + .atInfo() + .log( + "Cannot find jar with old SecureStore (%s) in lib/ directory", + currentSecureStoreName); } } private void copyNewLib(SitePaths sitePaths, Path newSecureStorePath) throws IOException { - log.info("Copy new SecureStore ({}) into lib/ directory", newSecureStorePath.getFileName()); + logger + .atInfo() + .log("Copy new SecureStore (%s) into lib/ directory", newSecureStorePath.getFileName()); Files.copy(newSecureStorePath, sitePaths.lib_dir.resolve(newSecureStorePath.getFileName())); } private void updateGerritConfig(SitePaths sitePaths, String newSecureStore) throws IOException, ConfigInvalidException { - log.info("Set gerrit.secureStoreClass property of gerrit.config to {}", newSecureStore); + logger + .atInfo() + .log("Set gerrit.secureStoreClass property of gerrit.config to %s", newSecureStore); FileBasedConfig config = new FileBasedConfig(sitePaths.gerrit_config.toFile(), FS.DETECTED); config.load(); config.setString("gerrit", null, "secureStoreClass", newSecureStore); @@ -197,7 +209,7 @@ public class SwitchSecureStore extends SiteProgram { return jar; } } catch (IOException e) { - log.error(e.getMessage(), e); + logger.atSevere().withCause(e).log(e.getMessage()); } } return null; diff --git a/java/com/google/gerrit/pgm/WarDistribution.java b/java/com/google/gerrit/pgm/WarDistribution.java index 37ce9953fb..257fb4ee39 100644 --- a/java/com/google/gerrit/pgm/WarDistribution.java +++ b/java/com/google/gerrit/pgm/WarDistribution.java @@ -17,6 +17,7 @@ package com.google.gerrit.pgm; import static com.google.gerrit.pgm.init.InitPlugins.JAR; import static com.google.gerrit.pgm.init.InitPlugins.PLUGIN_DIR; +import com.google.common.flogger.FluentLogger; import com.google.gerrit.launcher.GerritLauncher; import com.google.gerrit.pgm.init.PluginsDistribution; import com.google.inject.Singleton; @@ -28,12 +29,10 @@ import java.util.Enumeration; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; @Singleton public class WarDistribution implements PluginsDistribution { - private static final Logger log = LoggerFactory.getLogger(WarDistribution.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); @Override public void foreach(Processor processor) throws IOException { @@ -53,8 +52,7 @@ public class WarDistribution implements PluginsDistribution { try (InputStream in = zf.getInputStream(ze)) { processor.process(pluginName, in); } catch (IOException ioe) { - log.error( - String.format("Error opening plugin %s: %s", ze.getName(), ioe.getMessage())); + logger.atSevere().log("Error opening plugin %s: %s", ze.getName(), ioe.getMessage()); } } } diff --git a/java/com/google/gerrit/pgm/http/jetty/BUILD b/java/com/google/gerrit/pgm/http/jetty/BUILD index 86961d609b..6dc63658a2 100644 --- a/java/com/google/gerrit/pgm/http/jetty/BUILD +++ b/java/com/google/gerrit/pgm/http/jetty/BUILD @@ -13,6 +13,7 @@ java_library( "//java/com/google/gwtexpui/server", "//lib:guava", "//lib:servlet-api-3_1", + "//lib/flogger:api", "//lib/guice", "//lib/guice:guice-assistedinject", "//lib/guice:guice-servlet", @@ -20,7 +21,6 @@ java_library( "//lib/jetty:server", "//lib/jetty:servlet", "//lib/jgit/org.eclipse.jgit:jgit", - "//lib/log:api", "//lib/log:log4j", ], ) diff --git a/java/com/google/gerrit/pgm/http/jetty/HiddenErrorHandler.java b/java/com/google/gerrit/pgm/http/jetty/HiddenErrorHandler.java index 2fbbb97282..9347171aaf 100644 --- a/java/com/google/gerrit/pgm/http/jetty/HiddenErrorHandler.java +++ b/java/com/google/gerrit/pgm/http/jetty/HiddenErrorHandler.java @@ -17,6 +17,7 @@ package com.google.gerrit.pgm.http.jetty; import static java.nio.charset.StandardCharsets.ISO_8859_1; import com.google.common.base.Strings; +import com.google.common.flogger.FluentLogger; import com.google.gwtexpui.server.CacheHeaders; import java.io.IOException; import javax.servlet.ServletOutputStream; @@ -27,11 +28,9 @@ import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.server.HttpConnection; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.handler.ErrorHandler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; class HiddenErrorHandler extends ErrorHandler { - private static final Logger log = LoggerFactory.getLogger(HiddenErrorHandler.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); @Override public void handle( @@ -79,7 +78,7 @@ class HiddenErrorHandler extends ErrorHandler { if (!Strings.isNullOrEmpty(req.getQueryString())) { uri += "?" + req.getQueryString(); } - log.error("Error in {} {}", req.getMethod(), uri, err); + logger.atSevere().withCause(err).log("Error in %s %s", req.getMethod(), uri); } } } diff --git a/java/com/google/gerrit/pgm/init/BUILD b/java/com/google/gerrit/pgm/init/BUILD index 4b53b67a3f..c781a60df4 100644 --- a/java/com/google/gerrit/pgm/init/BUILD +++ b/java/com/google/gerrit/pgm/init/BUILD @@ -23,9 +23,9 @@ java_library( "//lib:gwtorm", "//lib:h2", "//lib/commons:validator", + "//lib/flogger:api", "//lib/guice", "//lib/guice:guice-assistedinject", "//lib/jgit/org.eclipse.jgit:jgit", - "//lib/log:api", ], ) diff --git a/java/com/google/gerrit/pgm/init/BaseInit.java b/java/com/google/gerrit/pgm/init/BaseInit.java index 88e48aa4e5..56f31e33a8 100644 --- a/java/com/google/gerrit/pgm/init/BaseInit.java +++ b/java/com/google/gerrit/pgm/init/BaseInit.java @@ -21,6 +21,7 @@ import static com.google.inject.Stage.PRODUCTION; import com.google.common.base.MoreObjects; import com.google.common.base.Strings; +import com.google.common.flogger.FluentLogger; import com.google.gerrit.common.Die; import com.google.gerrit.common.IoUtil; import com.google.gerrit.metrics.DisabledMetricMaker; @@ -75,12 +76,10 @@ import java.util.Collections; import java.util.List; import java.util.Set; import javax.sql.DataSource; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** Initialize a new Gerrit installation. */ public class BaseInit extends SiteProgram { - private static final Logger log = LoggerFactory.getLogger(BaseInit.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final boolean standalone; private final boolean initDb; @@ -205,7 +204,9 @@ public class BaseInit extends SiteProgram { } return names; } catch (FileNotFoundException e) { - log.warn("Couldn't find distribution archive location. No plugin will be installed"); + logger + .atWarning() + .log("Couldn't find distribution archive location. No plugin will be installed"); return null; } } diff --git a/java/com/google/gerrit/pgm/init/api/AllProjectsConfig.java b/java/com/google/gerrit/pgm/init/api/AllProjectsConfig.java index 5073200f38..e95e155290 100644 --- a/java/com/google/gerrit/pgm/init/api/AllProjectsConfig.java +++ b/java/com/google/gerrit/pgm/init/api/AllProjectsConfig.java @@ -14,6 +14,7 @@ package com.google.gerrit.pgm.init.api; +import com.google.common.flogger.FluentLogger; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.RefNames; import com.google.gerrit.server.config.SitePaths; @@ -26,11 +27,9 @@ import org.eclipse.jgit.lib.CommitBuilder; import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.RepositoryCache; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class AllProjectsConfig extends VersionedMetaDataOnInit { - private static final Logger log = LoggerFactory.getLogger(AllProjectsConfig.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private Config cfg; private GroupList groupList; @@ -64,7 +63,10 @@ public class AllProjectsConfig extends VersionedMetaDataOnInit { return GroupList.parse( new Project.NameKey(project), readUTF8(GroupList.FILE_NAME), - error -> log.error("Error parsing file {}: {}", GroupList.FILE_NAME, error.getMessage())); + error -> + logger + .atSevere() + .log("Error parsing file %s: %s", GroupList.FILE_NAME, error.getMessage())); } public void save(String pluginName, String message) throws IOException, ConfigInvalidException { diff --git a/java/com/google/gerrit/pgm/init/api/BUILD b/java/com/google/gerrit/pgm/init/api/BUILD index d84261c607..bc418dde5c 100644 --- a/java/com/google/gerrit/pgm/init/api/BUILD +++ b/java/com/google/gerrit/pgm/init/api/BUILD @@ -9,9 +9,9 @@ java_library( "//java/com/google/gerrit/server", "//lib:guava", "//lib:gwtorm", + "//lib/flogger:api", "//lib/guice", "//lib/guice:guice-assistedinject", "//lib/jgit/org.eclipse.jgit:jgit", - "//lib/log:api", ], ) diff --git a/java/com/google/gerrit/pgm/util/BUILD b/java/com/google/gerrit/pgm/util/BUILD index 8f3bd4b273..7fe3bfa78d 100644 --- a/java/com/google/gerrit/pgm/util/BUILD +++ b/java/com/google/gerrit/pgm/util/BUILD @@ -24,7 +24,6 @@ java_library( "//lib/flogger:api", "//lib/guice", "//lib/jgit/org.eclipse.jgit:jgit", - "//lib/log:api", "//lib/log:jsonevent-layout", "//lib/log:log4j", ], diff --git a/java/com/google/gerrit/pgm/util/LogFileCompressor.java b/java/com/google/gerrit/pgm/util/LogFileCompressor.java index 8d04be89f3..413e0fab4e 100644 --- a/java/com/google/gerrit/pgm/util/LogFileCompressor.java +++ b/java/com/google/gerrit/pgm/util/LogFileCompressor.java @@ -17,6 +17,7 @@ package com.google.gerrit.pgm.util; import static java.util.concurrent.TimeUnit.HOURS; import static java.util.concurrent.TimeUnit.MILLISECONDS; +import com.google.common.flogger.FluentLogger; import com.google.common.io.ByteStreams; import com.google.gerrit.extensions.events.LifecycleListener; import com.google.gerrit.lifecycle.LifecycleModule; @@ -36,12 +37,10 @@ import java.time.temporal.ChronoUnit; import java.util.concurrent.Future; import java.util.zip.GZIPOutputStream; import org.eclipse.jgit.lib.Config; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** Compresses the old error logs. */ public class LogFileCompressor implements Runnable { - private static final Logger log = LoggerFactory.getLogger(LogFileCompressor.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); public static class Module extends LifecycleModule { @Override @@ -113,10 +112,10 @@ public class LogFileCompressor implements Runnable { } } } catch (IOException e) { - log.error("Error listing logs to compress in " + logs_dir, e); + logger.atSevere().withCause(e).log("Error listing logs to compress in %s", logs_dir); } } catch (Exception e) { - log.error("Failed to compress log files: " + e.getMessage(), e); + logger.atSevere().withCause(e).log("Failed to compress log files: %s", e.getMessage()); } } @@ -156,11 +155,11 @@ public class LogFileCompressor implements Runnable { } Files.delete(src); } catch (IOException e) { - log.error("Cannot compress " + src, e); + logger.atSevere().withCause(e).log("Cannot compress %s", src); try { Files.deleteIfExists(tmp); } catch (IOException e2) { - log.warn("Failed to delete temporary log file " + tmp, e2); + logger.atWarning().withCause(e2).log("Failed to delete temporary log file %s", tmp); } } } diff --git a/java/com/google/gerrit/pgm/util/RuntimeShutdown.java b/java/com/google/gerrit/pgm/util/RuntimeShutdown.java index c9df7e749a..c5e856780f 100644 --- a/java/com/google/gerrit/pgm/util/RuntimeShutdown.java +++ b/java/com/google/gerrit/pgm/util/RuntimeShutdown.java @@ -14,10 +14,9 @@ package com.google.gerrit.pgm.util; +import com.google.common.flogger.FluentLogger; import java.util.ArrayList; import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class RuntimeShutdown { private static final ShutdownCallback cb = new ShutdownCallback(); @@ -45,7 +44,7 @@ public class RuntimeShutdown { private RuntimeShutdown() {} private static class ShutdownCallback extends Thread { - private static final Logger log = LoggerFactory.getLogger(ShutdownCallback.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final List tasks = new ArrayList<>(); private boolean shutdownStarted; @@ -72,7 +71,7 @@ public class RuntimeShutdown { @Override public void run() { - log.debug("Graceful shutdown requested"); + logger.atFine().log("Graceful shutdown requested"); List taskList; synchronized (this) { @@ -84,11 +83,11 @@ public class RuntimeShutdown { try { task.run(); } catch (Exception err) { - log.error("Cleanup task failed", err); + logger.atSevere().withCause(err).log("Cleanup task failed"); } } - log.debug("Shutdown complete"); + logger.atFine().log("Shutdown complete"); synchronized (this) { shutdownComplete = true; diff --git a/java/com/google/gerrit/pgm/util/ThreadLimiter.java b/java/com/google/gerrit/pgm/util/ThreadLimiter.java index d609c34cb6..64f703bd22 100644 --- a/java/com/google/gerrit/pgm/util/ThreadLimiter.java +++ b/java/com/google/gerrit/pgm/util/ThreadLimiter.java @@ -14,19 +14,18 @@ package com.google.gerrit.pgm.util; +import com.google.common.flogger.FluentLogger; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.ThreadSettingsConfig; import com.google.gerrit.server.schema.DataSourceType; import com.google.inject.Injector; import com.google.inject.Key; import org.eclipse.jgit.lib.Config; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; // TODO(dborowitz): Not necessary once we switch to NoteDb. /** Utility to limit threads used by a batch program. */ public class ThreadLimiter { - private static final Logger log = LoggerFactory.getLogger(ThreadLimiter.class); + private static final FluentLogger logger = FluentLogger.forEnclosingClass(); public static int limitThreads(Injector dbInjector, int threads) { return limitThreads( @@ -41,7 +40,7 @@ public class ThreadLimiter { boolean usePool = cfg.getBoolean("database", "connectionpool", dst.usePool()); int poolLimit = threadSettingsConfig.getDatabasePoolLimit(); if (usePool && threads > poolLimit) { - log.warn("Limiting program to " + poolLimit + " threads due to database.poolLimit"); + logger.atWarning().log("Limiting program to %d threads due to database.poolLimit", poolLimit); return poolLimit; } return threads;