You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by wf...@apache.org on 2016/01/04 05:50:21 UTC

[2/4] aurora git commit: Use slf4j throughout the scheduler.

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java b/src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java
index 1b1443d..7ff3e3e 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/SchedulerDriverService.java
@@ -16,7 +16,6 @@ package org.apache.aurora.scheduler.mesos;
 import java.util.Collection;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -33,6 +32,8 @@ import org.apache.mesos.Protos.FrameworkID;
 import org.apache.mesos.Protos.FrameworkInfo;
 import org.apache.mesos.Scheduler;
 import org.apache.mesos.SchedulerDriver;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -44,7 +45,7 @@ import static org.apache.mesos.Protos.Status.DRIVER_RUNNING;
  * Manages the lifecycle of the scheduler driver, and provides a more constrained API to use it.
  */
 class SchedulerDriverService extends AbstractIdleService implements Driver {
-  private static final Logger LOG = Logger.getLogger(SchedulerDriverService.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(SchedulerDriverService.class);
 
   private final AtomicLong killFailures = Stats.exportLong("scheduler_driver_kill_failures");
   private final DriverFactory driverFactory;
@@ -74,7 +75,7 @@ class SchedulerDriverService extends AbstractIdleService implements Driver {
 
     LOG.info("Connecting to mesos master: " + driverSettings.getMasterUri());
     if (!driverSettings.getCredentials().isPresent()) {
-      LOG.warning("Connecting to master without authentication!");
+      LOG.warn("Connecting to master without authentication!");
     }
 
     FrameworkInfo.Builder frameworkBuilder = driverSettings.getFrameworkInfo().toBuilder();
@@ -83,7 +84,7 @@ class SchedulerDriverService extends AbstractIdleService implements Driver {
       LOG.info("Found persisted framework ID: " + frameworkId);
       frameworkBuilder.setId(FrameworkID.newBuilder().setValue(frameworkId.get()));
     } else {
-      LOG.warning("Did not find a persisted framework ID, connecting as a new framework.");
+      LOG.warn("Did not find a persisted framework ID, connecting as a new framework.");
     }
 
     SchedulerDriver schedulerDriver = driverFactory.create(
@@ -134,8 +135,7 @@ class SchedulerDriverService extends AbstractIdleService implements Driver {
         Protos.TaskID.newBuilder().setValue(taskId).build());
 
     if (status != DRIVER_RUNNING) {
-      LOG.severe(String.format("Attempt to kill task %s failed with code %s",
-          taskId, status));
+      LOG.error("Attempt to kill task {} failed with code {}", taskId, status);
       killFailures.incrementAndGet();
     }
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/mesos/TaskStatusStats.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/mesos/TaskStatusStats.java b/src/main/java/org/apache/aurora/scheduler/mesos/TaskStatusStats.java
index 53a94bf..5573638 100644
--- a/src/main/java/org/apache/aurora/scheduler/mesos/TaskStatusStats.java
+++ b/src/main/java/org/apache/aurora/scheduler/mesos/TaskStatusStats.java
@@ -14,7 +14,6 @@
 package org.apache.aurora.scheduler.mesos;
 
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Logger;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.cache.CacheBuilder;
@@ -31,6 +30,8 @@ import org.apache.aurora.scheduler.events.PubsubEvent.TaskStatusReceived;
 import org.apache.mesos.Protos;
 import org.apache.mesos.Protos.TaskStatus.Reason;
 import org.apache.mesos.Protos.TaskStatus.Source;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -39,7 +40,7 @@ import static java.util.Objects.requireNonNull;
  */
 class TaskStatusStats implements EventSubscriber {
 
-  private static final Logger LOG = Logger.getLogger(TaskStatusStats.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(TaskStatusStats.class);
 
   private final Clock clock;
 
@@ -110,7 +111,7 @@ class TaskStatusStats implements EventSubscriber {
         latencyTimers.getUnchecked(event.getSource().get())
             .requestComplete(nowMicros - event.getEpochTimestampMicros().get());
       } else {
-        LOG.fine("Not recording stats for status update with timestamp <= now");
+        LOG.debug("Not recording stats for status update with timestamp <= now");
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java b/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
index aa22473..394d25f 100644
--- a/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
+++ b/src/main/java/org/apache/aurora/scheduler/offers/OfferManager.java
@@ -18,7 +18,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentSkipListSet;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -50,6 +49,8 @@ import org.apache.aurora.scheduler.storage.entities.IHostAttributes;
 import org.apache.mesos.Protos;
 import org.apache.mesos.Protos.OfferID;
 import org.apache.mesos.Protos.SlaveID;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -151,7 +152,7 @@ public interface OfferManager extends EventSubscriber {
 
   class OfferManagerImpl implements OfferManager {
     @VisibleForTesting
-    static final Logger LOG = Logger.getLogger(OfferManagerImpl.class.getName());
+    static final Logger LOG = LoggerFactory.getLogger(OfferManagerImpl.class);
 
     private final HostOffers hostOffers = new HostOffers();
     private final AtomicLong offerRaces = Stats.exportLong("offer_accept_races");
@@ -202,7 +203,7 @@ public interface OfferManager extends EventSubscriber {
     }
 
     void decline(OfferID id) {
-      LOG.fine("Declining offer " + id);
+      LOG.debug("Declining offer " + id);
       driver.declineOffer(id);
     }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/offers/OffersModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/offers/OffersModule.java b/src/main/java/org/apache/aurora/scheduler/offers/OffersModule.java
index 0f228b1..90f8abf 100644
--- a/src/main/java/org/apache/aurora/scheduler/offers/OffersModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/offers/OffersModule.java
@@ -24,7 +24,6 @@ import org.apache.aurora.common.args.constraints.NotNegative;
 import org.apache.aurora.common.quantity.Amount;
 import org.apache.aurora.common.quantity.Time;
 import org.apache.aurora.common.util.Random;
-
 import org.apache.aurora.scheduler.events.PubsubEventModule;
 
 /**

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/offers/RandomJitterReturnDelay.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/offers/RandomJitterReturnDelay.java b/src/main/java/org/apache/aurora/scheduler/offers/RandomJitterReturnDelay.java
index 883e419..a52fd4e 100644
--- a/src/main/java/org/apache/aurora/scheduler/offers/RandomJitterReturnDelay.java
+++ b/src/main/java/org/apache/aurora/scheduler/offers/RandomJitterReturnDelay.java
@@ -20,7 +20,6 @@ import com.google.common.annotations.VisibleForTesting;
 import org.apache.aurora.common.quantity.Amount;
 import org.apache.aurora.common.quantity.Time;
 import org.apache.aurora.common.util.Random;
-
 import org.apache.aurora.scheduler.offers.OfferManager.OfferReturnDelay;
 
 import static com.google.common.base.Preconditions.checkArgument;

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorModule.java b/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorModule.java
index d108742..23d1c12 100644
--- a/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/preemptor/PreemptorModule.java
@@ -13,8 +13,6 @@
  */
 package org.apache.aurora.scheduler.preemptor;
 
-import java.util.logging.Logger;
-
 import javax.inject.Inject;
 import javax.inject.Singleton;
 
@@ -33,12 +31,14 @@ import org.apache.aurora.scheduler.SchedulerServicesModule;
 import org.apache.aurora.scheduler.base.TaskGroupKey;
 import org.apache.aurora.scheduler.events.PubsubEventModule;
 import org.apache.aurora.scheduler.preemptor.BiCache.BiCacheSettings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
 public class PreemptorModule extends AbstractModule {
 
-  private static final Logger LOG = Logger.getLogger(PreemptorModule.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(PreemptorModule.class);
 
   @CmdLine(name = "enable_preemptor",
       help = "Enable the preemptor and preemption")
@@ -114,7 +114,7 @@ public class PreemptorModule extends AbstractModule {
           expose(PendingTaskProcessor.class);
         } else {
           bind(Preemptor.class).toInstance(NULL_PREEMPTOR);
-          LOG.warning("Preemptor Disabled.");
+          LOG.warn("Preemptor Disabled.");
         }
         expose(Preemptor.class);
       }

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/pruning/JobUpdateHistoryPruner.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/pruning/JobUpdateHistoryPruner.java b/src/main/java/org/apache/aurora/scheduler/pruning/JobUpdateHistoryPruner.java
index fa4e3e8..6ab39ca 100644
--- a/src/main/java/org/apache/aurora/scheduler/pruning/JobUpdateHistoryPruner.java
+++ b/src/main/java/org/apache/aurora/scheduler/pruning/JobUpdateHistoryPruner.java
@@ -16,7 +16,6 @@ package org.apache.aurora.scheduler.pruning;
 import java.util.Set;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -29,6 +28,8 @@ import org.apache.aurora.common.util.Clock;
 import org.apache.aurora.scheduler.storage.Storage;
 import org.apache.aurora.scheduler.storage.Storage.MutateWork.NoResult;
 import org.apache.aurora.scheduler.storage.entities.IJobUpdateKey;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -36,7 +37,7 @@ import static java.util.Objects.requireNonNull;
  * Prunes per-job update history on a periodic basis.
  */
 class JobUpdateHistoryPruner extends AbstractIdleService {
-  private static final Logger LOG = Logger.getLogger(JobUpdateHistoryPruner.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(JobUpdateHistoryPruner.class);
 
   private final Clock clock;
   private final ScheduledExecutorService executor;

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/pruning/PruningModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/pruning/PruningModule.java b/src/main/java/org/apache/aurora/scheduler/pruning/PruningModule.java
index 9bf7b2e..735199a 100644
--- a/src/main/java/org/apache/aurora/scheduler/pruning/PruningModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/pruning/PruningModule.java
@@ -14,7 +14,6 @@
 package org.apache.aurora.scheduler.pruning;
 
 import java.util.concurrent.ScheduledExecutorService;
-import java.util.logging.Logger;
 
 import javax.inject.Singleton;
 
@@ -29,13 +28,15 @@ import org.apache.aurora.scheduler.SchedulerServicesModule;
 import org.apache.aurora.scheduler.base.AsyncUtil;
 import org.apache.aurora.scheduler.events.PubsubEventModule;
 import org.apache.aurora.scheduler.pruning.TaskHistoryPruner.HistoryPrunnerSettings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Binding module for background storage pruning.
  */
 public class PruningModule extends AbstractModule {
 
-  private static final Logger LOG = Logger.getLogger(PruningModule.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(PruningModule.class);
 
   @CmdLine(name = "history_prune_threshold",
       help = "Time after which the scheduler will prune terminated task history.")

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/pruning/TaskHistoryPruner.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/pruning/TaskHistoryPruner.java b/src/main/java/org/apache/aurora/scheduler/pruning/TaskHistoryPruner.java
index d1108a3..2064089 100644
--- a/src/main/java/org/apache/aurora/scheduler/pruning/TaskHistoryPruner.java
+++ b/src/main/java/org/apache/aurora/scheduler/pruning/TaskHistoryPruner.java
@@ -14,7 +14,6 @@
 package org.apache.aurora.scheduler.pruning;
 
 import java.util.Set;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -38,6 +37,8 @@ import org.apache.aurora.scheduler.storage.Storage;
 import org.apache.aurora.scheduler.storage.Storage.MutateWork.NoResult;
 import org.apache.aurora.scheduler.storage.entities.IJobKey;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -49,7 +50,7 @@ import static org.apache.aurora.scheduler.events.PubsubEvent.TaskStateChange;
  * transitioning into one of the inactive states.
  */
 public class TaskHistoryPruner implements EventSubscriber {
-  private static final Logger LOG = Logger.getLogger(TaskHistoryPruner.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(TaskHistoryPruner.class);
 
   private final DelayExecutor executor;
   private final StateManager stateManager;
@@ -137,7 +138,7 @@ public class TaskHistoryPruner implements EventSubscriber {
       final String taskId,
       long timeRemaining) {
 
-    LOG.fine("Prune task " + taskId + " in " + timeRemaining + " ms.");
+    LOG.debug("Prune task " + taskId + " in " + timeRemaining + " ms.");
     executor.execute(
         () -> {
           LOG.info("Pruning expired inactive task " + taskId);

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/reconciliation/KillRetry.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/reconciliation/KillRetry.java b/src/main/java/org/apache/aurora/scheduler/reconciliation/KillRetry.java
index 119ef71..31afa7f 100644
--- a/src/main/java/org/apache/aurora/scheduler/reconciliation/KillRetry.java
+++ b/src/main/java/org/apache/aurora/scheduler/reconciliation/KillRetry.java
@@ -14,7 +14,6 @@
 package org.apache.aurora.scheduler.reconciliation;
 
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -34,6 +33,8 @@ import org.apache.aurora.scheduler.events.PubsubEvent.EventSubscriber;
 import org.apache.aurora.scheduler.events.PubsubEvent.TaskStateChange;
 import org.apache.aurora.scheduler.mesos.Driver;
 import org.apache.aurora.scheduler.storage.Storage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -42,7 +43,7 @@ import static java.util.Objects.requireNonNull;
  * retries {@link Driver#killTask(String)} until the task transitions.
  */
 public class KillRetry implements EventSubscriber {
-  private static final Logger LOG = Logger.getLogger(KillRetry.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(KillRetry.class);
 
   @VisibleForTesting
   static final String RETRIES_COUNTER = "task_kill_retries";

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/reconciliation/ReconciliationModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/reconciliation/ReconciliationModule.java b/src/main/java/org/apache/aurora/scheduler/reconciliation/ReconciliationModule.java
index 7dae70c..cccee08 100644
--- a/src/main/java/org/apache/aurora/scheduler/reconciliation/ReconciliationModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/reconciliation/ReconciliationModule.java
@@ -16,7 +16,6 @@ package org.apache.aurora.scheduler.reconciliation;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 import java.util.concurrent.ScheduledExecutorService;
-import java.util.logging.Logger;
 
 import javax.inject.Qualifier;
 import javax.inject.Singleton;
@@ -36,6 +35,8 @@ import org.apache.aurora.scheduler.SchedulerServicesModule;
 import org.apache.aurora.scheduler.base.AsyncUtil;
 import org.apache.aurora.scheduler.events.PubsubEventModule;
 import org.apache.aurora.scheduler.reconciliation.TaskReconciler.TaskReconcilerSettings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
@@ -47,7 +48,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
  */
 public class ReconciliationModule extends AbstractModule {
 
-  private static final Logger LOG = Logger.getLogger(ReconciliationModule.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(ReconciliationModule.class);
 
   @CmdLine(name = "transient_task_state_timeout",
       help = "The amount of time after which to treat a task stuck in a transient state as LOST.")

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskTimeout.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskTimeout.java b/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskTimeout.java
index 7c09f7c..a90cbff 100644
--- a/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskTimeout.java
+++ b/src/main/java/org/apache/aurora/scheduler/reconciliation/TaskTimeout.java
@@ -16,7 +16,6 @@ package org.apache.aurora.scheduler.reconciliation;
 import java.util.EnumSet;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -36,6 +35,8 @@ import org.apache.aurora.scheduler.events.PubsubEvent.TaskStateChange;
 import org.apache.aurora.scheduler.state.StateChangeResult;
 import org.apache.aurora.scheduler.state.StateManager;
 import org.apache.aurora.scheduler.storage.Storage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -44,7 +45,7 @@ import static java.util.Objects.requireNonNull;
  * tasks will be transitioned to the LOST state.
  */
 class TaskTimeout extends AbstractIdleService implements EventSubscriber {
-  private static final Logger LOG = Logger.getLogger(TaskTimeout.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(TaskTimeout.class);
 
   @VisibleForTesting
   static final Amount<Long, Time> NOT_STARTED_RETRY = Amount.of(5L, Time.SECONDS);
@@ -130,7 +131,7 @@ class TaskTimeout extends AbstractIdleService implements EventSubscriber {
       } else {
         // Our service is not yet started.  We don't want to lose track of the task, so
         // we will try again later.
-        LOG.fine("Retrying timeout of task " + taskId + " in " + NOT_STARTED_RETRY);
+        LOG.debug("Retrying timeout of task " + taskId + " in " + NOT_STARTED_RETRY);
         // TODO(wfarner): This execution should not wait for a transaction, but a second executor
         // would be weird.
         executor.execute(this, NOT_STARTED_RETRY);

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/scheduling/RescheduleCalculator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/scheduling/RescheduleCalculator.java b/src/main/java/org/apache/aurora/scheduler/scheduling/RescheduleCalculator.java
index e5b7bfe..c136d1a 100644
--- a/src/main/java/org/apache/aurora/scheduler/scheduling/RescheduleCalculator.java
+++ b/src/main/java/org/apache/aurora/scheduler/scheduling/RescheduleCalculator.java
@@ -16,7 +16,6 @@ package org.apache.aurora.scheduler.scheduling;
 import java.util.EnumSet;
 import java.util.List;
 import java.util.Set;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -38,6 +37,8 @@ import org.apache.aurora.scheduler.base.Tasks;
 import org.apache.aurora.scheduler.storage.Storage;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskEvent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -69,7 +70,7 @@ public interface RescheduleCalculator {
 
   class RescheduleCalculatorImpl implements RescheduleCalculator {
 
-    private static final Logger LOG = Logger.getLogger(TaskGroups.class.getName());
+    private static final Logger LOG = LoggerFactory.getLogger(TaskGroups.class);
 
     private final Storage storage;
     private final RescheduleCalculatorSettings settings;

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/scheduling/TaskScheduler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/scheduling/TaskScheduler.java b/src/main/java/org/apache/aurora/scheduler/scheduling/TaskScheduler.java
index 7930c6c..b0c6070 100644
--- a/src/main/java/org/apache/aurora/scheduler/scheduling/TaskScheduler.java
+++ b/src/main/java/org/apache/aurora/scheduler/scheduling/TaskScheduler.java
@@ -16,8 +16,6 @@ package org.apache.aurora.scheduler.scheduling;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 import javax.inject.Qualifier;
@@ -43,6 +41,8 @@ import org.apache.aurora.scheduler.storage.Storage.MutableStoreProvider;
 import org.apache.aurora.scheduler.storage.entities.IAssignedTask;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
@@ -81,7 +81,7 @@ public interface TaskScheduler extends EventSubscriber {
     @Target({ FIELD, PARAMETER, METHOD }) @Retention(RUNTIME)
     public @interface ReservationDuration { }
 
-    private static final Logger LOG = Logger.getLogger(TaskSchedulerImpl.class.getName());
+    private static final Logger LOG = LoggerFactory.getLogger(TaskSchedulerImpl.class);
 
     private final Storage storage;
     private final TaskAssigner assigner;
@@ -114,7 +114,7 @@ public interface TaskScheduler extends EventSubscriber {
       } catch (RuntimeException e) {
         // We catch the generic unchecked exception here to ensure tasks are not abandoned
         // if there is a transient issue resulting in an unchecked exception.
-        LOG.log(Level.WARNING, "Task scheduling unexpectedly failed, will be retried", e);
+        LOG.warn("Task scheduling unexpectedly failed, will be retried", e);
         attemptsFailed.incrementAndGet();
         return false;
       }
@@ -122,7 +122,7 @@ public interface TaskScheduler extends EventSubscriber {
 
     @Timed("task_schedule_attempt_locked")
     protected boolean scheduleTask(MutableStoreProvider store, String taskId) {
-      LOG.fine("Attempting to schedule task " + taskId);
+      LOG.debug("Attempting to schedule task " + taskId);
       IAssignedTask assignedTask = Iterables.getOnlyElement(
           Iterables.transform(
               store.getTaskStore().fetchTasks(Query.taskScoped(taskId).byStatus(PENDING)),
@@ -130,7 +130,7 @@ public interface TaskScheduler extends EventSubscriber {
           null);
 
       if (assignedTask == null) {
-        LOG.warning("Failed to look up task " + taskId + ", it may have been deleted.");
+        LOG.warn("Failed to look up task " + taskId + ", it may have been deleted.");
       } else {
         ITaskConfig task = assignedTask.getTask();
         AttributeAggregate aggregate = AttributeAggregate.getJobActiveState(store, task.getJob());

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/sla/SlaModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/sla/SlaModule.java b/src/main/java/org/apache/aurora/scheduler/sla/SlaModule.java
index 575ae1d..d569241 100644
--- a/src/main/java/org/apache/aurora/scheduler/sla/SlaModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/sla/SlaModule.java
@@ -18,7 +18,6 @@ import java.lang.annotation.Target;
 import java.util.Set;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 import javax.inject.Qualifier;
@@ -38,6 +37,8 @@ import org.apache.aurora.scheduler.SchedulerServicesModule;
 import org.apache.aurora.scheduler.base.AsyncUtil;
 import org.apache.aurora.scheduler.sla.MetricCalculator.MetricCalculatorSettings;
 import org.apache.aurora.scheduler.sla.MetricCalculator.MetricCategory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
@@ -54,7 +55,7 @@ import static org.apache.aurora.scheduler.sla.MetricCalculator.MetricCategory.PL
  */
 public class SlaModule extends AbstractModule {
 
-  private static final Logger LOG = Logger.getLogger(SlaModule.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(SlaModule.class);
 
   @Positive
   @CmdLine(name = "sla_stat_refresh_interval", help = "The SLA stat refresh interval.")
@@ -133,7 +134,7 @@ public class SlaModule extends AbstractModule {
     protected void startUp() {
       long interval = settings.getRefreshRateMs();
       executor.scheduleAtFixedRate(calculator, interval, interval, TimeUnit.MILLISECONDS);
-      LOG.info(String.format("Scheduled SLA calculation with %d msec interval.", interval));
+      LOG.debug("Scheduled SLA calculation with {} msec interval.", interval);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/state/MaintenanceController.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/MaintenanceController.java b/src/main/java/org/apache/aurora/scheduler/state/MaintenanceController.java
index 60ebfdf..3770056 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/MaintenanceController.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/MaintenanceController.java
@@ -14,7 +14,6 @@
 package org.apache.aurora.scheduler.state;
 
 import java.util.Set;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -41,6 +40,8 @@ import org.apache.aurora.scheduler.storage.Storage.MutableStoreProvider;
 import org.apache.aurora.scheduler.storage.Storage.MutateWork.NoResult;
 import org.apache.aurora.scheduler.storage.entities.IHostAttributes;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -101,7 +102,7 @@ public interface MaintenanceController {
   Set<HostStatus> endMaintenance(Set<String> hosts);
 
   class MaintenanceControllerImpl implements MaintenanceController, EventSubscriber {
-    private static final Logger LOG = Logger.getLogger(MaintenanceControllerImpl.class.getName());
+    private static final Logger LOG = LoggerFactory.getLogger(MaintenanceControllerImpl.class);
     private final Storage storage;
     private final StateManager stateManager;
 
@@ -124,7 +125,7 @@ public interface MaintenanceController {
           LOG.info("No tasks to drain for host: " + host);
           emptyHosts.add(host);
         } else {
-          LOG.info(String.format("Draining tasks: %s on host: %s", activeTasks, host));
+          LOG.info("Draining tasks: {} on host: {}", activeTasks, host);
           for (String taskId : activeTasks) {
             stateManager.changeState(
                 store,
@@ -160,12 +161,10 @@ public interface MaintenanceController {
             Query.Builder builder = Query.slaveScoped(host).active();
             Iterable<IScheduledTask> activeTasks = store.getTaskStore().fetchTasks(builder);
             if (Iterables.isEmpty(activeTasks)) {
-              LOG.info(String.format("Moving host %s into DRAINED", host));
+              LOG.info("Moving host {} into DRAINED", host);
               setMaintenanceMode(store, ImmutableSet.of(host), DRAINED);
             } else {
-              LOG.info(String.format("Host %s is DRAINING with active tasks: %s",
-                  host,
-                  Tasks.ids(activeTasks)));
+              LOG.info("Host {} is DRAINING with active tasks: {}", host, Tasks.ids(activeTasks));
             }
           }
         });
@@ -229,7 +228,7 @@ public interface MaintenanceController {
       AttributeStore.Mutable store = storeProvider.getAttributeStore();
       ImmutableSet.Builder<HostStatus> statuses = ImmutableSet.builder();
       for (String host : hosts) {
-        LOG.info(String.format("Setting maintenance mode to %s for host %s", mode, host));
+        LOG.info("Setting maintenance mode to {} for host {}", mode, host);
         Optional<IHostAttributes> toSave = AttributeStore.Util.mergeMode(store, host, mode);
         if (toSave.isPresent()) {
           store.saveHostAttributes(toSave.get());

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java b/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
index 6503af2..720b5e5 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/StateManagerImpl.java
@@ -18,8 +18,6 @@ import java.net.UnknownHostException;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -58,6 +56,8 @@ import org.apache.aurora.scheduler.storage.entities.IAssignedTask;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
 import org.apache.mesos.Protos.SlaveID;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -74,7 +74,7 @@ import static org.apache.aurora.scheduler.state.StateChangeResult.SUCCESS;
  * persisted state machine transitions, and their side-effects.
  */
 public class StateManagerImpl implements StateManager {
-  private static final Logger LOG = Logger.getLogger(StateManagerImpl.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(StateManagerImpl.class);
 
   private final Clock clock;
   private final Driver driver;
@@ -207,7 +207,7 @@ public class StateManagerImpl implements StateManager {
         try {
           return InetAddress.getLocalHost().getHostName();
         } catch (UnknownHostException e) {
-          LOG.log(Level.SEVERE, "Failed to get self hostname.");
+          LOG.error("Failed to get self hostname.");
           throw Throwables.propagate(e);
         }
       });

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java b/src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java
index 50868ea..7e8e456 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/TaskAssigner.java
@@ -17,8 +17,6 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -43,6 +41,8 @@ import org.apache.aurora.scheduler.mesos.MesosTaskFactory;
 import org.apache.aurora.scheduler.offers.OfferManager;
 import org.apache.aurora.scheduler.storage.entities.IAssignedTask;
 import org.apache.mesos.Protos.TaskInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -74,7 +74,7 @@ public interface TaskAssigner {
       Map<String, TaskGroupKey> slaveReservations);
 
   class TaskAssignerImpl implements TaskAssigner {
-    private static final Logger LOG = Logger.getLogger(TaskAssignerImpl.class.getName());
+    private static final Logger LOG = LoggerFactory.getLogger(TaskAssignerImpl.class);
 
     @VisibleForTesting
     static final Optional<String> LAUNCH_FAILED_MSG =
@@ -123,8 +123,9 @@ public interface TaskAssigner {
           host,
           offer.getSlaveId(),
           portsByName);
-      LOG.info(String.format("Offer on slave %s (id %s) is being assigned task for %s.",
-          host, offer.getSlaveId().getValue(), taskId));
+      LOG.info(
+          "Offer on slave {} (id {}) is being assigned task for {}.",
+          host, offer.getSlaveId().getValue(), taskId);
       return taskFactory.createFrom(assigned, offer.getSlaveId());
     }
 
@@ -164,7 +165,7 @@ public interface TaskAssigner {
             offerManager.launchTask(offer.getOffer().getId(), taskInfo);
             return true;
           } catch (OfferManager.LaunchException e) {
-            LOG.log(Level.WARNING, "Failed to launch task.", e);
+            LOG.warn("Failed to launch task.", e);
             launchFailures.incrementAndGet();
 
             // The attempt to schedule the task failed, so we need to backpedal on the
@@ -186,7 +187,7 @@ public interface TaskAssigner {
             offerManager.banOffer(offer.getOffer().getId(), groupKey);
           }
 
-          LOG.fine("Slave " + offer.getOffer().getHostname()
+          LOG.debug("Slave " + offer.getOffer().getHostname()
               + " vetoed task " + taskId + ": " + vetoes);
         }
       }

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java b/src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java
index b8d8bf9..6fd2951 100644
--- a/src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java
+++ b/src/main/java/org/apache/aurora/scheduler/state/TaskStateMachine.java
@@ -15,7 +15,6 @@ package org.apache.aurora.scheduler.state;
 
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Logger;
 
 import javax.annotation.Nullable;
 
@@ -39,6 +38,8 @@ import org.apache.aurora.common.util.StateMachine.Transition;
 import org.apache.aurora.gen.ScheduleStatus;
 import org.apache.aurora.scheduler.base.Tasks;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -80,7 +81,7 @@ import static org.apache.aurora.scheduler.state.TaskStateMachine.TaskState.THROT
  * resulting actions.
  */
 class TaskStateMachine {
-  private static final Logger LOG = Logger.getLogger(TaskStateMachine.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(TaskStateMachine.class);
 
   private static final AtomicLong ILLEGAL_TRANSITIONS =
       Stats.exportLong("scheduler_illegal_task_state_transitions");
@@ -450,7 +451,7 @@ class TaskStateMachine {
                   }
                   previousState = Optional.of(from);
                 } else {
-                  LOG.severe("Illegal state transition attempted: " + transition);
+                  LOG.error("Illegal state transition attempted: " + transition);
                   ILLEGAL_TRANSITIONS.incrementAndGet();
                 }
               }

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/stats/TaskStatCalculator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/stats/TaskStatCalculator.java b/src/main/java/org/apache/aurora/scheduler/stats/TaskStatCalculator.java
index c1e7197..2511a39 100644
--- a/src/main/java/org/apache/aurora/scheduler/stats/TaskStatCalculator.java
+++ b/src/main/java/org/apache/aurora/scheduler/stats/TaskStatCalculator.java
@@ -13,13 +13,13 @@
  */
 package org.apache.aurora.scheduler.stats;
 
-import java.util.logging.Logger;
-
 import javax.inject.Inject;
 
 import org.apache.aurora.scheduler.stats.ResourceCounter.GlobalMetric;
 import org.apache.aurora.scheduler.stats.ResourceCounter.Metric;
 import org.apache.aurora.scheduler.storage.Storage.StorageException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -27,7 +27,7 @@ import static java.util.Objects.requireNonNull;
  * Calculates and exports aggregate stats about resources consumed by active tasks.
  */
 class TaskStatCalculator implements Runnable {
-  private static final Logger LOG = Logger.getLogger(TaskStatCalculator.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(TaskStatCalculator.class);
 
   private final CachedCounters counters;
   private final ResourceCounter resourceCounter;
@@ -52,7 +52,7 @@ class TaskStatCalculator implements Runnable {
       }
       update("resources_allocated_quota", resourceCounter.computeQuotaAllocationTotals());
     } catch (StorageException e) {
-      LOG.fine("Unable to fetch metrics, storage is likely not ready.");
+      LOG.debug("Unable to fetch metrics, storage is likely not ready.");
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/StorageBackfill.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/StorageBackfill.java b/src/main/java/org/apache/aurora/scheduler/storage/StorageBackfill.java
index 5401a28..609a624 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/StorageBackfill.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/StorageBackfill.java
@@ -14,7 +14,6 @@
 package org.apache.aurora.scheduler.storage;
 
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Logger;
 
 import org.apache.aurora.common.stats.Stats;
 import org.apache.aurora.gen.JobConfiguration;
@@ -27,12 +26,14 @@ import org.apache.aurora.scheduler.storage.Storage.MutableStoreProvider;
 import org.apache.aurora.scheduler.storage.entities.IJobConfiguration;
 import org.apache.aurora.scheduler.storage.entities.IJobKey;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 /**
  * Utility class to contain and perform storage backfill operations.
  */
 public final class StorageBackfill {
 
-  private static final Logger LOG = Logger.getLogger(StorageBackfill.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(StorageBackfill.class);
 
   private static final AtomicLong BACKFILLED_TASK_CONFIG_KEYS =
       Stats.exportLong("task_config_keys_backfilled");

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/backup/BackupModule.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/backup/BackupModule.java b/src/main/java/org/apache/aurora/scheduler/storage/backup/BackupModule.java
index 5b9e9ee..cded40b 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/backup/BackupModule.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/backup/BackupModule.java
@@ -15,7 +15,6 @@ package org.apache.aurora.scheduler.storage.backup;
 
 import java.io.File;
 import java.util.concurrent.Executor;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 import javax.inject.Singleton;
@@ -40,6 +39,8 @@ import org.apache.aurora.scheduler.storage.backup.Recovery.RecoveryImpl;
 import org.apache.aurora.scheduler.storage.backup.StorageBackup.StorageBackupImpl;
 import org.apache.aurora.scheduler.storage.backup.StorageBackup.StorageBackupImpl.BackupConfig;
 import org.apache.aurora.scheduler.storage.backup.TemporaryStorage.TemporaryStorageFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -48,7 +49,7 @@ import static java.util.Objects.requireNonNull;
  * available for on-line recovery.
  */
 public class BackupModule extends PrivateModule {
-  private static final Logger LOG = Logger.getLogger(BackupModule.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(BackupModule.class);
 
   @CmdLine(name = "backup_interval", help = "Minimum interval on which to write a storage backup.")
   private static final Arg<Amount<Long, Time>> BACKUP_INTERVAL =

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/backup/StorageBackup.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/backup/StorageBackup.java b/src/main/java/org/apache/aurora/scheduler/storage/backup/StorageBackup.java
index 2cd8793..92b7b82 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/backup/StorageBackup.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/backup/StorageBackup.java
@@ -28,8 +28,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.Executor;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 import javax.inject.Qualifier;
@@ -51,6 +49,8 @@ import org.apache.thrift.protocol.TBinaryProtocol;
 import org.apache.thrift.protocol.TProtocol;
 import org.apache.thrift.transport.TIOStreamTransport;
 import org.apache.thrift.transport.TTransport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
@@ -70,7 +70,7 @@ public interface StorageBackup {
   void backupNow();
 
   class StorageBackupImpl implements StorageBackup, SnapshotStore<Snapshot> {
-    private static final Logger LOG = Logger.getLogger(StorageBackup.class.getName());
+    private static final Logger LOG = LoggerFactory.getLogger(StorageBackup.class);
 
     private static final String FILE_PREFIX = "scheduler-backup-";
     private final BackupConfig config;
@@ -170,9 +170,9 @@ public interface StorageBackup {
         successes.incrementAndGet();
       } catch (IOException e) {
         failures.incrementAndGet();
-        LOG.log(Level.SEVERE, "Failed to prepare backup " + backupName + ": " + e, e);
+        LOG.error("Failed to prepare backup " + backupName + ": " + e, e);
       } catch (TException e) {
-        LOG.log(Level.SEVERE, "Failed to encode backup " + backupName + ": " + e, e);
+        LOG.error("Failed to encode backup " + backupName + ": " + e, e);
         failures.incrementAndGet();
       } finally {
         if (tempFile.exists()) {
@@ -183,7 +183,7 @@ public interface StorageBackup {
 
       File[] backups = config.dir.listFiles(BACKUP_FILTER);
       if (backups == null) {
-        LOG.severe("Failed to list backup dir " + config.dir);
+        LOG.error("Failed to list backup dir " + config.dir);
       } else {
         int backupsToDelete = backups.length - config.maxBackups;
         if (backupsToDelete > 0) {
@@ -200,7 +200,7 @@ public interface StorageBackup {
 
     private void tryDelete(File fileToDelete) {
       if (!fileToDelete.delete()) {
-        LOG.severe("Failed to delete file: " + fileToDelete.getName());
+        LOG.error("Failed to delete file: " + fileToDelete.getName());
       }
     }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/db/DbTaskStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/DbTaskStore.java b/src/main/java/org/apache/aurora/scheduler/storage/db/DbTaskStore.java
index 59ba725..d406134 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/DbTaskStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/DbTaskStore.java
@@ -14,8 +14,6 @@
 package org.apache.aurora.scheduler.storage.db;
 
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import com.google.common.base.Function;
 import com.google.common.base.Optional;
@@ -44,6 +42,8 @@ import org.apache.aurora.scheduler.storage.db.views.Pairs;
 import org.apache.aurora.scheduler.storage.entities.IJobKey;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -58,7 +58,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
  */
 class DbTaskStore implements TaskStore.Mutable {
 
-  private static final Logger LOG = Logger.getLogger(DbTaskStore.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(DbTaskStore.class);
 
   private final TaskMapper taskMapper;
   private final TaskConfigManager configManager;
@@ -72,7 +72,7 @@ class DbTaskStore implements TaskStore.Mutable {
       Clock clock,
       Amount<Long, Time> slowQueryThreshold) {
 
-    LOG.warning("DbTaskStore is experimental, and should not be used in production clusters!");
+    LOG.warn("DbTaskStore is experimental, and should not be used in production clusters!");
     this.taskMapper = requireNonNull(taskMapper);
     this.configManager = requireNonNull(configManager);
     this.clock = requireNonNull(clock);
@@ -89,10 +89,13 @@ class DbTaskStore implements TaskStore.Mutable {
     long start = clock.nowNanos();
     ImmutableSet<IScheduledTask> result = matches(query).toSet();
     long durationNanos = clock.nowNanos() - start;
-    Level level = durationNanos >= slowQueryThresholdNanos ? Level.INFO : Level.FINE;
-    if (LOG.isLoggable(level)) {
-      Long time = Amount.of(durationNanos, Time.NANOSECONDS).as(Time.MILLISECONDS);
-      LOG.log(level, "Query took " + time + " ms: " + query.get());
+    boolean infoLevel = durationNanos >= slowQueryThresholdNanos;
+    long time = Amount.of(durationNanos, Time.NANOSECONDS).as(Time.MILLISECONDS);
+    String message = "Query took {} ms: {}";
+    if (infoLevel) {
+      LOG.info(message, time, query.get());
+    } else {
+      LOG.debug(message, time, query.get());
     }
 
     return result;

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/db/DbUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/DbUtil.java b/src/main/java/org/apache/aurora/scheduler/storage/db/DbUtil.java
index 3a2a049..708be56 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/DbUtil.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/DbUtil.java
@@ -26,7 +26,6 @@ import org.apache.aurora.scheduler.storage.Storage;
 import org.apache.aurora.scheduler.testing.FakeStatsProvider;
 
 import static org.apache.aurora.common.inject.Bindings.KeyFactory.PLAIN;
-
 import static org.apache.aurora.scheduler.storage.db.DbModule.testModule;
 
 /**

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollector.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollector.java b/src/main/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollector.java
index 9ef377a..8cd7bfe 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollector.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollector.java
@@ -15,7 +15,6 @@ package org.apache.aurora.scheduler.storage.db;
 
 import java.util.List;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -28,6 +27,8 @@ import org.apache.aurora.scheduler.storage.Storage.MutateWork.NoResult;
 import org.apache.ibatis.exceptions.PersistenceException;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -36,7 +37,7 @@ import static java.util.Objects.requireNonNull;
  */
 class RowGarbageCollector extends AbstractScheduledService {
 
-  private static final Logger LOG = Logger.getLogger(RowGarbageCollector.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(RowGarbageCollector.class);
 
   // Note: these are deliberately ordered to remove 'parent' references first, but since
   // this is an iterative process, it is not strictly necessary.

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/db/TaskConfigMapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/TaskConfigMapper.java b/src/main/java/org/apache/aurora/scheduler/storage/db/TaskConfigMapper.java
index ce5b1f4..12ca16b 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/TaskConfigMapper.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/TaskConfigMapper.java
@@ -17,7 +17,6 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.aurora.common.collections.Pair;
-
 import org.apache.aurora.scheduler.storage.db.views.DbTaskConfig;
 import org.apache.aurora.scheduler.storage.entities.IConstraint;
 import org.apache.aurora.scheduler.storage.entities.IDockerContainer;

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/db/TaskMapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/TaskMapper.java b/src/main/java/org/apache/aurora/scheduler/storage/db/TaskMapper.java
index 48a01f1..4bf4004 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/TaskMapper.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/TaskMapper.java
@@ -19,7 +19,6 @@ import java.util.Set;
 import javax.annotation.Nullable;
 
 import org.apache.aurora.common.collections.Pair;
-
 import org.apache.aurora.gen.JobKey;
 import org.apache.aurora.gen.TaskQuery;
 import org.apache.aurora.scheduler.storage.db.views.DbScheduledTask;

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/db/views/DbAssignedTask.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/db/views/DbAssignedTask.java b/src/main/java/org/apache/aurora/scheduler/storage/db/views/DbAssignedTask.java
index b2021b8..9372239 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/db/views/DbAssignedTask.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/db/views/DbAssignedTask.java
@@ -16,7 +16,6 @@ package org.apache.aurora.scheduler.storage.db.views;
 import java.util.List;
 
 import org.apache.aurora.common.collections.Pair;
-
 import org.apache.aurora.gen.AssignedTask;
 
 public final class DbAssignedTask {

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/log/Entries.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/Entries.java b/src/main/java/org/apache/aurora/scheduler/storage/log/Entries.java
index 413d59a..ab7cd2d 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/Entries.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/Entries.java
@@ -13,21 +13,21 @@
  */
 package org.apache.aurora.scheduler.storage.log;
 
-import java.util.logging.Logger;
-
 import com.google.common.base.Preconditions;
 
 import org.apache.aurora.codec.ThriftBinaryCodec;
 import org.apache.aurora.codec.ThriftBinaryCodec.CodingException;
 import org.apache.aurora.gen.storage.LogEntry;
 import org.apache.aurora.gen.storage.LogEntry._Fields;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Utility class for working with log entries.
  */
 public final class Entries {
 
-  private static final Logger LOG = Logger.getLogger(Entries.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(Entries.class);
 
   private Entries() {
     // Utility class.

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java b/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
index 6928cc8..042f71d 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java
@@ -19,8 +19,6 @@ import java.util.Map;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.ReentrantLock;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -75,6 +73,8 @@ import org.apache.aurora.scheduler.storage.entities.ILockKey;
 import org.apache.aurora.scheduler.storage.entities.IResourceAggregate;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -175,7 +175,7 @@ public class LogStorage implements NonVolatileStorage, DistributedSnapshotStore
     }
   }
 
-  private static final Logger LOG = Logger.getLogger(LogStorage.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(LogStorage.class);
 
   private final LogManager logManager;
   private final SchedulingService schedulingService;
@@ -295,7 +295,7 @@ public class LogStorage implements NonVolatileStorage, DistributedSnapshotStore
         quotaStore,
         attributeStore,
         jobUpdateStore,
-        Logger.getLogger(WriteAheadStorage.class.getName()),
+        LoggerFactory.getLogger(WriteAheadStorage.class),
         eventSink);
 
     this.logEntryReplayActions = buildLogEntryReplayActions();
@@ -472,9 +472,9 @@ public class LogStorage implements NonVolatileStorage, DistributedSnapshotStore
           snapshot();
         } catch (StorageException e) {
           if (e.getCause() == null) {
-            LOG.log(Level.WARNING, "StorageException when attempting to snapshot.", e);
+            LOG.warn("StorageException when attempting to snapshot.", e);
           } else {
-            LOG.log(Level.WARNING, e.getMessage(), e.getCause());
+            LOG.warn(e.getMessage(), e.getCause());
           }
         }
       });

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotDeduplicator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotDeduplicator.java b/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotDeduplicator.java
index de14413..9733ffe 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotDeduplicator.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotDeduplicator.java
@@ -15,7 +15,6 @@ package org.apache.aurora.scheduler.storage.log;
 
 import java.util.List;
 import java.util.Map.Entry;
-import java.util.logging.Logger;
 
 import com.google.common.base.Function;
 import com.google.common.collect.ListMultimap;
@@ -29,6 +28,8 @@ import org.apache.aurora.gen.TaskConfig;
 import org.apache.aurora.gen.storage.DeduplicatedScheduledTask;
 import org.apache.aurora.gen.storage.DeduplicatedSnapshot;
 import org.apache.aurora.gen.storage.Snapshot;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.aurora.gen.AssignedTask._Fields.TASK;
 import static org.apache.aurora.gen.ScheduledTask._Fields.ASSIGNED_TASK;
@@ -59,7 +60,7 @@ public interface SnapshotDeduplicator {
   Snapshot reduplicate(DeduplicatedSnapshot snapshot) throws CodingException;
 
   class SnapshotDeduplicatorImpl implements SnapshotDeduplicator {
-    private static final Logger LOG = Logger.getLogger(SnapshotDeduplicatorImpl.class.getName());
+    private static final Logger LOG = LoggerFactory.getLogger(SnapshotDeduplicatorImpl.class);
 
     private static final Function<ScheduledTask, TaskConfig> SCHEDULED_TO_CONFIG =
         task -> task.getAssignedTask().getTask();
@@ -103,14 +104,14 @@ public interface SnapshotDeduplicator {
     @Timed("snapshot_deduplicate")
     public DeduplicatedSnapshot deduplicate(Snapshot snapshot) {
       int numInputTasks = snapshot.getTasksSize();
-      LOG.info(String.format("Starting deduplication of a snapshot with %d tasks.", numInputTasks));
+      LOG.info("Starting deduplication of a snapshot with {} tasks.", numInputTasks);
 
       DeduplicatedSnapshot deduplicatedSnapshot = new DeduplicatedSnapshot()
           .setPartialSnapshot(deepCopyWithoutTasks(snapshot));
 
       // Nothing to do if we don't have any input tasks.
       if (!snapshot.isSetTasks()) {
-        LOG.warning("Got snapshot with unset tasks field.");
+        LOG.warn("Got snapshot with unset tasks field.");
         return deduplicatedSnapshot;
       }
 
@@ -145,7 +146,7 @@ public interface SnapshotDeduplicator {
       LOG.info("Starting reduplication.");
       Snapshot snapshot = new Snapshot(deduplicatedSnapshot.getPartialSnapshot());
       if (!deduplicatedSnapshot.isSetTaskConfigs()) {
-        LOG.warning("Got deduplicated snapshot with unset task configs.");
+        LOG.warn("Got deduplicated snapshot with unset task configs.");
         return snapshot;
       }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java b/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
index 3077c37..db90150 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java
@@ -15,7 +15,6 @@ package org.apache.aurora.scheduler.storage.log;
 
 import java.util.Arrays;
 import java.util.Map;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
@@ -52,6 +51,8 @@ import org.apache.aurora.scheduler.storage.entities.IJobUpdateKey;
 import org.apache.aurora.scheduler.storage.entities.ILock;
 import org.apache.aurora.scheduler.storage.entities.IResourceAggregate;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -61,7 +62,7 @@ import static java.util.Objects.requireNonNull;
  */
 public class SnapshotStoreImpl implements SnapshotStore<Snapshot> {
 
-  private static final Logger LOG = Logger.getLogger(SnapshotStoreImpl.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(SnapshotStoreImpl.class);
 
   private static final Iterable<SnapshotField> SNAPSHOT_FIELDS = Arrays.asList(
       new SnapshotField() {

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/log/StreamManager.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/StreamManager.java b/src/main/java/org/apache/aurora/scheduler/storage/log/StreamManager.java
index 6eea132..76a574f 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/StreamManager.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/StreamManager.java
@@ -14,7 +14,6 @@
 package org.apache.aurora.scheduler.storage.log;
 
 import org.apache.aurora.common.base.Closure;
-
 import org.apache.aurora.gen.storage.LogEntry;
 import org.apache.aurora.gen.storage.Snapshot;
 import org.apache.aurora.scheduler.log.Log;

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java b/src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java
index 7a63515..766ec2d 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/StreamManagerImpl.java
@@ -19,7 +19,6 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Logger;
 
 import javax.annotation.Nullable;
 import javax.inject.Inject;
@@ -48,6 +47,8 @@ import org.apache.aurora.gen.storage.Transaction;
 import org.apache.aurora.gen.storage.storageConstants;
 import org.apache.aurora.scheduler.log.Log;
 import org.apache.aurora.scheduler.log.Log.Stream;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -58,7 +59,7 @@ import static org.apache.aurora.scheduler.log.Log.Stream.StreamAccessException;
 import static org.apache.aurora.scheduler.storage.log.LogManager.LogEntryHashFunction;
 
 class StreamManagerImpl implements StreamManager {
-  private static final Logger LOG = Logger.getLogger(StreamManagerImpl.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(StreamManagerImpl.class);
 
   private static class Vars {
     private final AtomicInteger unSnapshottedTransactions =
@@ -124,7 +125,7 @@ class StreamManagerImpl implements StreamManager {
   @Nullable
   private LogEntry tryDecodeFrame(Frame frame, Iterator<Log.Entry> entries) throws CodingException {
     if (!isHeader(frame)) {
-      LOG.warning("Found a frame with no preceding header, skipping.");
+      LOG.warn("Found a frame with no preceding header, skipping.");
       return null;
     }
     FrameHeader header = frame.getHeader();

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/log/WriteAheadStorage.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/log/WriteAheadStorage.java b/src/main/java/org/apache/aurora/scheduler/storage/log/WriteAheadStorage.java
index 2d34f36..c44ff47 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/log/WriteAheadStorage.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/log/WriteAheadStorage.java
@@ -15,8 +15,6 @@ package org.apache.aurora.scheduler.storage.log;
 
 import java.util.Map;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import com.google.common.base.Function;
 import com.google.common.base.Optional;
@@ -64,6 +62,7 @@ import org.apache.aurora.scheduler.storage.entities.ILockKey;
 import org.apache.aurora.scheduler.storage.entities.IResourceAggregate;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
+import org.slf4j.Logger;
 
 import uno.perk.forward.Forward;
 
@@ -204,10 +203,9 @@ class WriteAheadStorage extends WriteAheadStorageForwarder implements
     ImmutableSet<IScheduledTask> mutated = taskStore.mutateTasks(query, mutator);
 
     Map<String, IScheduledTask> tasksById = Tasks.mapById(mutated);
-    if (log.isLoggable(Level.FINE)) {
-      log.fine("Storing updated tasks to log: "
-          + Maps.transformValues(tasksById, IScheduledTask::getStatus));
-    }
+    log.debug(
+        "Storing updated tasks to log: {}",
+        Maps.transformValues(tasksById, IScheduledTask::getStatus));
 
     // TODO(William Farner): Avoid writing an op when mutated is empty.
     write(Op.saveTasks(new SaveTasks(IScheduledTask.toBuildersSet(mutated))));

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/storage/mem/MemTaskStore.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemTaskStore.java b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemTaskStore.java
index 93f6efb..c55dcc9 100644
--- a/src/main/java/org/apache/aurora/scheduler/storage/mem/MemTaskStore.java
+++ b/src/main/java/org/apache/aurora/scheduler/storage/mem/MemTaskStore.java
@@ -21,8 +21,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import javax.inject.Inject;
 import javax.inject.Qualifier;
@@ -58,6 +56,8 @@ import org.apache.aurora.scheduler.storage.TaskStore;
 import org.apache.aurora.scheduler.storage.entities.IJobKey;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -66,7 +66,7 @@ import static java.util.Objects.requireNonNull;
  */
 class MemTaskStore implements TaskStore.Mutable {
 
-  private static final Logger LOG = Logger.getLogger(MemTaskStore.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(MemTaskStore.class);
 
   /**
    * When true, enable snapshot deflation.
@@ -132,10 +132,13 @@ class MemTaskStore implements TaskStore.Mutable {
     long start = System.nanoTime();
     ImmutableSet<IScheduledTask> result = matches(query).transform(TO_SCHEDULED).toSet();
     long durationNanos = System.nanoTime() - start;
-    Level level = durationNanos >= slowQueryThresholdNanos ? Level.INFO : Level.FINE;
-    if (LOG.isLoggable(level)) {
-      Long time = Amount.of(durationNanos, Time.NANOSECONDS).as(Time.MILLISECONDS);
-      LOG.log(level, "Query took " + time + " ms: " + query.get());
+    boolean infoLevel = durationNanos >= slowQueryThresholdNanos;
+    long time = Amount.of(durationNanos, Time.NANOSECONDS).as(Time.MILLISECONDS);
+    String message = "Query took {} ms: {}";
+    if (infoLevel) {
+      LOG.info(message, time, query.get());
+    } else {
+      LOG.debug(message, time, query.get());
     }
 
     return result;

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
index 0afe924..69eab90 100644
--- a/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
+++ b/src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java
@@ -16,7 +16,6 @@ package org.apache.aurora.scheduler.thrift;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.logging.Logger;
 
 import javax.annotation.Nullable;
 import javax.inject.Inject;
@@ -118,6 +117,8 @@ import org.apache.aurora.scheduler.updater.JobUpdateController;
 import org.apache.aurora.scheduler.updater.JobUpdateController.AuditData;
 import org.apache.aurora.scheduler.updater.UpdateStateException;
 import org.apache.thrift.TException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -153,7 +154,7 @@ class SchedulerThriftInterface implements AnnotatedAuroraAdmin {
   @VisibleForTesting
   static final int MAX_TASK_ID_LENGTH = 255 - 90;
 
-  private static final Logger LOG = Logger.getLogger(SchedulerThriftInterface.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(SchedulerThriftInterface.class);
 
   private final ConfigurationManager configurationManager;
   private final Thresholds thresholds;

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/thrift/aop/LoggingInterceptor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/thrift/aop/LoggingInterceptor.java b/src/main/java/org/apache/aurora/scheduler/thrift/aop/LoggingInterceptor.java
index 10e0a5a..e0d6c56 100644
--- a/src/main/java/org/apache/aurora/scheduler/thrift/aop/LoggingInterceptor.java
+++ b/src/main/java/org/apache/aurora/scheduler/thrift/aop/LoggingInterceptor.java
@@ -15,8 +15,6 @@ package org.apache.aurora.scheduler.thrift.aop;
 
 import java.util.List;
 import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import com.google.common.base.Function;
 import com.google.common.base.Throwables;
@@ -31,13 +29,15 @@ import org.apache.aurora.gen.ResponseCode;
 import org.apache.aurora.scheduler.storage.Storage;
 import org.apache.aurora.scheduler.thrift.Responses;
 import org.apache.shiro.ShiroException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * A method interceptor that logs all invocations as well as any unchecked exceptions thrown from
  * the underlying call.
  */
 class LoggingInterceptor implements MethodInterceptor {
-  private static final Logger LOG = Logger.getLogger(LoggingInterceptor.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(LoggingInterceptor.class);
 
   private final Map<Class<?>, Function<Object, String>> printFunctions =
       ImmutableMap.of(
@@ -69,13 +69,13 @@ class LoggingInterceptor implements MethodInterceptor {
     try {
       return invocation.proceed();
     } catch (Storage.TransientStorageException e) {
-      LOG.log(Level.WARNING, "Uncaught transient exception while handling " + message, e);
+      LOG.warn("Uncaught transient exception while handling " + message, e);
       return Responses.addMessage(Responses.empty(), ResponseCode.ERROR_TRANSIENT, e);
     } catch (RuntimeException e) {
       // We need shiro's exceptions to bubble up to the Shiro servlet filter so we intentionally
       // do not swallow them here.
       Throwables.propagateIfInstanceOf(e, ShiroException.class);
-      LOG.log(Level.WARNING, "Uncaught exception while handling " + message, e);
+      LOG.warn("Uncaught exception while handling " + message, e);
       return Responses.addMessage(Responses.empty(), ResponseCode.ERROR, e);
     }
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/updater/InstanceActionHandler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/InstanceActionHandler.java b/src/main/java/org/apache/aurora/scheduler/updater/InstanceActionHandler.java
index 35c68f1..11ffa66 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/InstanceActionHandler.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/InstanceActionHandler.java
@@ -13,8 +13,6 @@
  */
 package org.apache.aurora.scheduler.updater;
 
-import java.util.logging.Logger;
-
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Iterables;
@@ -33,6 +31,8 @@ import org.apache.aurora.scheduler.storage.entities.IJobUpdateInstructions;
 import org.apache.aurora.scheduler.storage.entities.IRange;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.aurora.gen.JobUpdateStatus.ROLLING_FORWARD;
 import static org.apache.aurora.scheduler.storage.Storage.MutableStoreProvider;
@@ -46,7 +46,7 @@ interface InstanceActionHandler {
       StateManager stateManager,
       JobUpdateStatus status);
 
-  Logger LOG = Logger.getLogger(InstanceActionHandler.class.getName());
+  Logger LOG = LoggerFactory.getLogger(InstanceActionHandler.class);
 
   static Optional<IScheduledTask> getExistingTask(
       MutableStoreProvider storeProvider,

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/updater/InstanceUpdater.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/InstanceUpdater.java b/src/main/java/org/apache/aurora/scheduler/updater/InstanceUpdater.java
index 3a2eec3..c129896 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/InstanceUpdater.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/InstanceUpdater.java
@@ -13,8 +13,6 @@
  */
 package org.apache.aurora.scheduler.updater;
 
-import java.util.logging.Logger;
-
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Predicates;
@@ -28,6 +26,8 @@ import org.apache.aurora.scheduler.base.Tasks;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.storage.entities.ITaskConfig;
 import org.apache.aurora.scheduler.storage.entities.ITaskEvent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -46,7 +46,7 @@ import static org.apache.aurora.scheduler.updater.StateEvaluator.Result.SUCCEEDE
  * new configuration, and detecting whether a replaced instance becomes unstable.
  */
 class InstanceUpdater implements StateEvaluator<Optional<IScheduledTask>> {
-  private static final Logger LOG = Logger.getLogger(InstanceUpdater.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(InstanceUpdater.class);
 
   private final Optional<ITaskConfig> desiredState;
   private final int toleratedFailures;

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java b/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java
index ca46400..48d7e2a 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java
@@ -18,8 +18,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ScheduledExecutorService;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
@@ -69,6 +67,8 @@ import org.apache.aurora.scheduler.storage.entities.ILock;
 import org.apache.aurora.scheduler.storage.entities.ILockKey;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
 import org.apache.aurora.scheduler.updater.StateEvaluator.Failure;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -106,7 +106,7 @@ import static org.apache.aurora.scheduler.updater.SideEffect.InstanceUpdateStatu
  * TODO(wfarner): Consider using AbstractIdleService here.
  */
 class JobUpdateControllerImpl implements JobUpdateController {
-  private static final Logger LOG = Logger.getLogger(JobUpdateControllerImpl.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(JobUpdateControllerImpl.class);
 
   private final UpdateFactory updateFactory;
   private final LockManager lockManager;
@@ -282,10 +282,10 @@ class JobUpdateControllerImpl implements JobUpdateController {
       return JobUpdatePulseStatus.FINISHED;
     }
 
-    LOG.fine(String.format(
-        "Job update %s has been pulsed. Timeout of %d msec is reset.",
+    LOG.debug(
+        "Job update {} has been pulsed. Timeout of {} msec is reset.",
         key,
-        state.getPulseTimeoutMs()));
+        state.getPulseTimeoutMs());
 
     if (JobUpdateStateMachine.isAwaitingPulse(state.getStatus())) {
       // Attempt to unblock a job update previously blocked on expired pulse.
@@ -295,7 +295,7 @@ class JobUpdateControllerImpl implements JobUpdateController {
               key,
               status -> new JobUpdateEvent().setStatus(GET_UNBLOCKED_STATE.apply(status)));
         } catch (UpdateStateException e) {
-          LOG.severe("Error while processing job update pulse: " + e);
+          LOG.error("Error while processing job update pulse: " + e);
         }
       });
     }
@@ -425,12 +425,12 @@ class JobUpdateControllerImpl implements JobUpdateController {
       status = proposedEvent.getStatus();
       record = recordChange;
     } else {
-      LOG.severe("Update " + key + " does not have a lock");
+      LOG.error("Update " + key + " does not have a lock");
       status = ERROR;
       record = true;
     }
 
-    LOG.info(String.format("Update %s is now in state %s", key, status));
+    LOG.info("Update {} is now in state {}", key, status);
     if (record) {
       updateStore.saveJobUpdateEvent(
           key,
@@ -465,7 +465,7 @@ class JobUpdateControllerImpl implements JobUpdateController {
       try {
         update = updateFactory.newUpdate(jobUpdate.getInstructions(), action == ROLL_FORWARD);
       } catch (RuntimeException e) {
-        LOG.log(Level.WARNING, "Uncaught exception: " + e, e);
+        LOG.warn("Uncaught exception: " + e, e);
         changeJobUpdateStatus(
             storeProvider,
             key,
@@ -505,7 +505,7 @@ class JobUpdateControllerImpl implements JobUpdateController {
     if (isCoordinatedUpdate(instructions)) {
       PulseState pulseState = pulseHandler.get(key);
       boolean result = pulseState == null || pulseState.isBlocked(clock);
-      LOG.info(String.format("Coordinated update %s pulse expired: %s", key, result));
+      LOG.info("Coordinated update {} pulse expired: {}", key, result);
       return result;
     } else {
       return false;
@@ -581,9 +581,7 @@ class JobUpdateControllerImpl implements JobUpdateController {
         // A given instance update action may only be issued once during the update lifecycle.
         // Suppress duplicate events due to pause/resume operations.
         if (savedActions.contains(action)) {
-          LOG.info(String.format("Suppressing duplicate update %s for instance %s.",
-              action,
-              instanceId));
+          LOG.info("Suppressing duplicate update {} for instance {}.", action, instanceId);
         } else {
           IJobInstanceUpdateEvent event = IJobInstanceUpdateEvent.build(
               new JobInstanceUpdateEvent()

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateEventSubscriber.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateEventSubscriber.java b/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateEventSubscriber.java
index 4e8ad87..c01cf92 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateEventSubscriber.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/JobUpdateEventSubscriber.java
@@ -14,8 +14,6 @@
 package org.apache.aurora.scheduler.updater;
 
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import com.google.common.eventbus.Subscribe;
 import com.google.common.util.concurrent.AbstractIdleService;
@@ -26,6 +24,8 @@ import org.apache.aurora.scheduler.base.InstanceKeys;
 import org.apache.aurora.scheduler.base.Tasks;
 import org.apache.aurora.scheduler.events.PubsubEvent;
 import org.apache.aurora.scheduler.storage.entities.IScheduledTask;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -36,7 +36,7 @@ import static org.apache.aurora.scheduler.events.PubsubEvent.TasksDeleted;
  * A pubsub event subscriber that forwards status updates to the job update controller.
  */
 class JobUpdateEventSubscriber extends AbstractIdleService implements PubsubEvent.EventSubscriber {
-  private static final Logger LOG = Logger.getLogger(JobUpdateEventSubscriber.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(JobUpdateEventSubscriber.class);
 
   private static final AtomicLong RECOVERY_ERRORS = Stats.exportLong("job_update_recovery_errors");
   private static final AtomicLong DELETE_ERRORS = Stats.exportLong("job_update_delete_errors");
@@ -55,7 +55,7 @@ class JobUpdateEventSubscriber extends AbstractIdleService implements PubsubEven
     try {
       controller.instanceChangedState(change.getTask());
     } catch (RuntimeException e) {
-      LOG.log(Level.SEVERE, "Failed to handle state change: " + e, e);
+      LOG.error("Failed to handle state change: " + e, e);
       STATE_CHANGE_ERRORS.incrementAndGet();
     }
   }
@@ -70,7 +70,7 @@ class JobUpdateEventSubscriber extends AbstractIdleService implements PubsubEven
               InstanceKeys.from(Tasks.getJob(task), task.getAssignedTask().getInstanceId()));
         }
       } catch (RuntimeException e) {
-        LOG.log(Level.SEVERE, "Failed to handle instance deletion: " + e, e);
+        LOG.error("Failed to handle instance deletion: " + e, e);
         DELETE_ERRORS.incrementAndGet();
       }
     }
@@ -82,7 +82,7 @@ class JobUpdateEventSubscriber extends AbstractIdleService implements PubsubEven
     try {
       controller.systemResume();
     } catch (RuntimeException e) {
-      LOG.log(Level.SEVERE, "Failed to resume job updates: " + e, e);
+      LOG.error("Failed to resume job updates: " + e, e);
       RECOVERY_ERRORS.incrementAndGet();
     }
   }

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/main/java/org/apache/aurora/scheduler/updater/OneWayJobUpdater.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/aurora/scheduler/updater/OneWayJobUpdater.java b/src/main/java/org/apache/aurora/scheduler/updater/OneWayJobUpdater.java
index 72ccfa8..f2d33fb 100644
--- a/src/main/java/org/apache/aurora/scheduler/updater/OneWayJobUpdater.java
+++ b/src/main/java/org/apache/aurora/scheduler/updater/OneWayJobUpdater.java
@@ -16,7 +16,6 @@ package org.apache.aurora.scheduler.updater;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
-import java.util.logging.Logger;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
@@ -29,6 +28,8 @@ import com.google.common.collect.Maps;
 
 import org.apache.aurora.common.util.StateMachine;
 import org.apache.aurora.scheduler.updater.strategy.UpdateStrategy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.requireNonNull;
 
@@ -47,7 +48,7 @@ import static org.apache.aurora.scheduler.updater.StateEvaluator.Result;
  * @param <T> Instance data type.
  */
 class OneWayJobUpdater<K, T> {
-  private static final Logger LOG = Logger.getLogger(OneWayJobUpdater.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(OneWayJobUpdater.class);
 
   private final UpdateStrategy<K> strategy;
   private final int maxFailedInstances;

http://git-wip-us.apache.org/repos/asf/aurora/blob/9ed81a7d/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java b/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java
index d53ec6a..9fb8aad 100644
--- a/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java
+++ b/src/test/java/org/apache/aurora/scheduler/app/SchedulerIT.java
@@ -22,8 +22,6 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Throwables;
@@ -97,6 +95,8 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.aurora.common.testing.easymock.EasyMockTest.createCapture;
 import static org.apache.mesos.Protos.FrameworkInfo;
@@ -110,7 +110,7 @@ import static org.junit.Assert.fail;
 
 public class SchedulerIT extends BaseZooKeeperTest {
 
-  private static final Logger LOG = Logger.getLogger(SchedulerIT.class.getName());
+  private static final Logger LOG = LoggerFactory.getLogger(SchedulerIT.class);
 
   private static final String CLUSTER_NAME = "integration_test_cluster";
   private static final String SERVERSET_PATH = "/fake/service/path";
@@ -149,7 +149,7 @@ public class SchedulerIT extends BaseZooKeeperTest {
     addTearDown(() -> {
       if (mainException.get().isPresent()) {
         RuntimeException e = mainException.get().get();
-        LOG.log(Level.SEVERE, "Scheduler main exited with an exception", e);
+        LOG.error("Scheduler main exited with an exception", e);
         fail(e.getMessage());
       }
       control.verify();