From b99a503f243067c1b1f52f25379df000cfcac7bb Mon Sep 17 00:00:00 2001
From: akwizgran <akwizgran@users.sourceforge.net>
Date: Wed, 12 Mar 2014 21:00:14 +0000
Subject: [PATCH] Removed unnecessary conditionals from logging statements.

Very important stuff.
---
 .../briarproject/android/BriarActivity.java   | 11 +--
 .../briarproject/android/BriarService.java    | 14 ++-
 .../android/DashboardActivity.java            |  2 +-
 .../android/SplashScreenActivity.java         |  2 +-
 .../android/contact/ContactListActivity.java  |  6 +-
 .../android/contact/ConversationActivity.java |  6 +-
 .../android/groups/GroupActivity.java         |  6 +-
 .../android/groups/GroupListActivity.java     | 11 ++-
 .../android/groups/ManageGroupsActivity.java  |  7 +-
 .../plugins/droidtooth/DroidtoothPlugin.java  | 38 ++++-----
 .../plugins/droidtooth/InsecureBluetooth.java | 10 +--
 .../briarproject/plugins/tor/TorPlugin.java   | 46 +++++-----
 .../briarproject/db/DatabaseCleanerImpl.java  |  5 +-
 .../src/org/briarproject/db/JdbcDatabase.java |  4 +-
 .../invitation/AliceConnector.java            |  3 +-
 .../briarproject/invitation/BobConnector.java |  3 +-
 .../briarproject/invitation/Connector.java    |  2 +-
 .../invitation/ConnectorGroup.java            |  3 +-
 .../lifecycle/LifecycleManagerImpl.java       |  6 +-
 .../messaging/duplex/DuplexConnection.java    | 85 ++++++++-----------
 .../duplex/DuplexConnectionFactoryImpl.java   |  5 +-
 .../simplex/SimplexConnectionFactoryImpl.java |  5 +-
 .../plugins/PluginManagerImpl.java            | 18 ++--
 .../org/briarproject/plugins/PollerImpl.java  |  5 +-
 .../briarproject/plugins/tcp/TcpPlugin.java   |  2 +-
 .../reliability/ReliabilityLayerImpl.java     |  3 +-
 .../transport/ConnectionRegistryImpl.java     |  8 +-
 .../transport/KeyManagerImpl.java             |  7 +-
 .../lifecycle/WindowsShutdownManagerImpl.java | 13 +--
 .../plugins/bluetooth/BluetoothPlugin.java    | 22 ++---
 .../file/PollingRemovableDriveMonitor.java    |  5 +-
 .../briarproject/plugins/modem/ModemImpl.java | 33 +++----
 .../plugins/modem/ModemPlugin.java            |  9 +-
 33 files changed, 165 insertions(+), 240 deletions(-)

diff --git a/briar-android/src/org/briarproject/android/BriarActivity.java b/briar-android/src/org/briarproject/android/BriarActivity.java
index 09f1dfe84f..43305d5d5a 100644
--- a/briar-android/src/org/briarproject/android/BriarActivity.java
+++ b/briar-android/src/org/briarproject/android/BriarActivity.java
@@ -2,7 +2,6 @@ package org.briarproject.android;
 
 import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
 import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP;
-import static java.util.logging.Level.INFO;
 
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
@@ -88,12 +87,11 @@ public class BriarActivity extends RoboFragmentActivity {
 					BriarService service = ((BriarBinder) binder).getService();
 					service.waitForStartup();
 					// Shut down the service and wait for it to shut down
-					if(LOG.isLoggable(INFO)) LOG.info("Shutting down service");
+					LOG.info("Shutting down service");
 					service.shutdown();
 					service.waitForShutdown();
 				} catch(InterruptedException e) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Interrupted while waiting for service");
+					LOG.warning("Interrupted while waiting for service");
 				}
 				finishAndExit();
 			}
@@ -104,7 +102,7 @@ public class BriarActivity extends RoboFragmentActivity {
 		runOnUiThread(new Runnable() {
 			public void run() {
 				finish();
-				if(LOG.isLoggable(INFO)) LOG.info("Exiting");
+				LOG.info("Exiting");
 				System.exit(0);
 			}
 		});
@@ -117,8 +115,7 @@ public class BriarActivity extends RoboFragmentActivity {
 					lifecycleManager.waitForDatabase();
 					task.run();
 				} catch(InterruptedException e) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Interrupted while waiting for database");
+					LOG.warning("Interrupted while waiting for database");
 					Thread.currentThread().interrupt();
 				}
 			}
diff --git a/briar-android/src/org/briarproject/android/BriarService.java b/briar-android/src/org/briarproject/android/BriarService.java
index bbf576174c..aeaa247fbb 100644
--- a/briar-android/src/org/briarproject/android/BriarService.java
+++ b/briar-android/src/org/briarproject/android/BriarService.java
@@ -3,7 +3,6 @@ package org.briarproject.android;
 import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP;
-import static java.util.logging.Level.INFO;
 import static java.util.logging.Level.WARNING;
 
 import java.util.concurrent.CountDownLatch;
@@ -61,14 +60,14 @@ public class BriarService extends RoboService implements EventListener {
 	@Override
 	public void onCreate() {
 		super.onCreate();
-		if(LOG.isLoggable(INFO)) LOG.info("Created");
+		LOG.info("Created");
 		if(created.getAndSet(true)) {
-			if(LOG.isLoggable(INFO)) LOG.info("Already created");
+			LOG.info("Already created");
 			stopSelf();
 			return;
 		}
 		if(databaseConfig.getEncryptionKey() == null) {
-			if(LOG.isLoggable(INFO)) LOG.info("No database key");
+			LOG.info("No database key");
 			stopSelf();
 			return;
 		}
@@ -92,7 +91,7 @@ public class BriarService extends RoboService implements EventListener {
 					db.addListener(BriarService.this);
 					started = true;
 				} else {
-					if(LOG.isLoggable(INFO)) LOG.info("Startup failed");
+					LOG.info("Startup failed");
 					showStartupFailureNotification();
 					stopSelf();
 				}
@@ -130,7 +129,7 @@ public class BriarService extends RoboService implements EventListener {
 	@Override
 	public void onDestroy() {
 		super.onDestroy();
-		if(LOG.isLoggable(INFO)) LOG.info("Destroyed");
+		LOG.info("Destroyed");
 		stopForeground(true);
 		notificationManager.clearNotifications();
 		// Stop the services in a background thread
@@ -167,8 +166,7 @@ public class BriarService extends RoboService implements EventListener {
 					if(LOG.isLoggable(WARNING))
 						LOG.log(WARNING, e.toString(), e);
 				} catch(InterruptedException e) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Interruped while waiting for database");
+					LOG.info("Interruped while waiting for database");
 					Thread.currentThread().interrupt();
 				}
 			}
diff --git a/briar-android/src/org/briarproject/android/DashboardActivity.java b/briar-android/src/org/briarproject/android/DashboardActivity.java
index 294bf0b7e1..d340a6d8ec 100644
--- a/briar-android/src/org/briarproject/android/DashboardActivity.java
+++ b/briar-android/src/org/briarproject/android/DashboardActivity.java
@@ -61,7 +61,7 @@ public class DashboardActivity extends BriarActivity {
 		long handle = i.getLongExtra("briar.LOCAL_AUTHOR_HANDLE", -1);
 		if(failed) {
 			finish();
-			if(LOG.isLoggable(INFO)) LOG.info("Exiting");
+			LOG.info("Exiting");
 			System.exit(0);
 		} else if(handle == -1) {
 			// The activity has been launched before
diff --git a/briar-android/src/org/briarproject/android/SplashScreenActivity.java b/briar-android/src/org/briarproject/android/SplashScreenActivity.java
index 24e3a46580..b2d05ca3c7 100644
--- a/briar-android/src/org/briarproject/android/SplashScreenActivity.java
+++ b/briar-android/src/org/briarproject/android/SplashScreenActivity.java
@@ -64,7 +64,7 @@ public class SplashScreenActivity extends RoboSplashActivity {
 		if(LOG.isLoggable(INFO))
 			LOG.info("Guice startup took " + duration + " ms");
 		if(System.currentTimeMillis() >= EXPIRY_DATE) {
-			if(LOG.isLoggable(INFO)) LOG.info("Expired");
+			LOG.info("Expired");
 			startActivity(new Intent(this, ExpiredActivity.class));
 		} else {
 			SharedPreferences prefs = getSharedPreferences("db", MODE_PRIVATE);
diff --git a/briar-android/src/org/briarproject/android/contact/ContactListActivity.java b/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
index 5250b1c7e4..ede41629f8 100644
--- a/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
+++ b/briar-android/src/org/briarproject/android/contact/ContactListActivity.java
@@ -233,15 +233,15 @@ ConnectionListener {
 			loadContacts();
 		} else if(e instanceof ContactRemovedEvent) {
 			// Reload the conversation, expecting NoSuchContactException
-			if(LOG.isLoggable(INFO)) LOG.info("Contact removed, reloading");
+			LOG.info("Contact removed, reloading");
 			reloadContact(((ContactRemovedEvent) e).getContactId());
 		} else if(e instanceof MessageAddedEvent) {
-			if(LOG.isLoggable(INFO)) LOG.info("Message added, reloading");
+			LOG.info("Message added, reloading");
 			ContactId source = ((MessageAddedEvent) e).getContactId();
 			if(source == null) loadContacts();
 			else reloadContact(source);
 		} else if(e instanceof MessageExpiredEvent) {
-			if(LOG.isLoggable(INFO)) LOG.info("Message expired, reloading");
+			LOG.info("Message expired, reloading");
 			loadContacts();
 		}
 	}
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
index e815591c00..ccca7563e6 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
@@ -369,17 +369,17 @@ implements EventListener, OnClickListener, OnItemClickListener {
 		if(e instanceof ContactRemovedEvent) {
 			ContactRemovedEvent c = (ContactRemovedEvent) e;
 			if(c.getContactId().equals(contactId)) {
-				if(LOG.isLoggable(INFO)) LOG.info("Contact removed");
+				LOG.info("Contact removed");
 				finishOnUiThread();
 			}
 		} else if(e instanceof MessageAddedEvent) {
 			GroupId g = ((MessageAddedEvent) e).getGroup().getId();
 			if(g.equals(groupId)) {
-				if(LOG.isLoggable(INFO)) LOG.info("Message added, reloading");
+				LOG.info("Message added, reloading");
 				loadHeaders();
 			}
 		} else if(e instanceof MessageExpiredEvent) {
-			if(LOG.isLoggable(INFO)) LOG.info("Message expired, reloading");
+			LOG.info("Message expired, reloading");
 			loadHeaders();
 		}
 	}
diff --git a/briar-android/src/org/briarproject/android/groups/GroupActivity.java b/briar-android/src/org/briarproject/android/groups/GroupActivity.java
index ed343db93e..89b5199689 100644
--- a/briar-android/src/org/briarproject/android/groups/GroupActivity.java
+++ b/briar-android/src/org/briarproject/android/groups/GroupActivity.java
@@ -299,16 +299,16 @@ OnClickListener, OnItemClickListener {
 	public void eventOccurred(Event e) {
 		if(e instanceof MessageAddedEvent) {
 			if(((MessageAddedEvent) e).getGroup().getId().equals(groupId)) {
-				if(LOG.isLoggable(INFO)) LOG.info("Message added, reloading");
+				LOG.info("Message added, reloading");
 				loadHeaders();
 			}
 		} else if(e instanceof MessageExpiredEvent) {
-			if(LOG.isLoggable(INFO)) LOG.info("Message expired, reloading");
+			LOG.info("Message expired, reloading");
 			loadHeaders();
 		} else if(e instanceof SubscriptionRemovedEvent) {
 			SubscriptionRemovedEvent s = (SubscriptionRemovedEvent) e;
 			if(s.getGroup().getId().equals(groupId)) {
-				if(LOG.isLoggable(INFO)) LOG.info("Subscription removed");
+				LOG.info("Subscription removed");
 				finishOnUiThread();
 			}
 		}
diff --git a/briar-android/src/org/briarproject/android/groups/GroupListActivity.java b/briar-android/src/org/briarproject/android/groups/GroupListActivity.java
index f422f74216..531b63e956 100644
--- a/briar-android/src/org/briarproject/android/groups/GroupListActivity.java
+++ b/briar-android/src/org/briarproject/android/groups/GroupListActivity.java
@@ -262,24 +262,23 @@ implements EventListener, OnClickListener, OnItemClickListener {
 		if(e instanceof MessageAddedEvent) {
 			Group g = ((MessageAddedEvent) e).getGroup();
 			if(groups.containsKey(g.getId())) {
-				if(LOG.isLoggable(INFO)) LOG.info("Message added, reloading");
+				LOG.info("Message added, reloading");
 				loadHeaders(g);
 			}
 		} else if(e instanceof MessageExpiredEvent) {
-			if(LOG.isLoggable(INFO)) LOG.info("Message expired, reloading");
+			LOG.info("Message expired, reloading");
 			loadHeaders();
 		} else if(e instanceof RemoteSubscriptionsUpdatedEvent) {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Remote subscriptions changed, reloading");
+			LOG.info("Remote subscriptions changed, reloading");
 			loadAvailable();
 		} else if(e instanceof SubscriptionAddedEvent) {
-			if(LOG.isLoggable(INFO)) LOG.info("Group added, reloading");
+			LOG.info("Group added, reloading");
 			loadHeaders();
 		} else if(e instanceof SubscriptionRemovedEvent) {
 			Group g = ((SubscriptionRemovedEvent) e).getGroup();
 			if(groups.containsKey(g.getId())) {
 				// Reload the group, expecting NoSuchSubscriptionException
-				if(LOG.isLoggable(INFO)) LOG.info("Group removed, reloading");
+				LOG.info("Group removed, reloading");
 				loadHeaders(g);
 			}
 		}
diff --git a/briar-android/src/org/briarproject/android/groups/ManageGroupsActivity.java b/briar-android/src/org/briarproject/android/groups/ManageGroupsActivity.java
index 04acb34f85..7ac4f30659 100644
--- a/briar-android/src/org/briarproject/android/groups/ManageGroupsActivity.java
+++ b/briar-android/src/org/briarproject/android/groups/ManageGroupsActivity.java
@@ -116,14 +116,13 @@ implements EventListener, OnItemClickListener {
 
 	public void eventOccurred(Event e) {
 		if(e instanceof RemoteSubscriptionsUpdatedEvent) {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Remote subscriptions changed, reloading");
+			LOG.info("Remote subscriptions changed, reloading");
 			loadGroups();
 		} else if(e instanceof SubscriptionAddedEvent) {
-			if(LOG.isLoggable(INFO)) LOG.info("Group added, reloading");
+			LOG.info("Group added, reloading");
 			loadGroups();
 		} else if(e instanceof SubscriptionRemovedEvent) {
-			if(LOG.isLoggable(INFO)) LOG.info("Group removed, reloading");
+			LOG.info("Group removed, reloading");
 			loadGroups();
 		}
 	}
diff --git a/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java b/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java
index c87da27f73..acc2ffc107 100644
--- a/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java
+++ b/briar-android/src/org/briarproject/plugins/droidtooth/DroidtoothPlugin.java
@@ -115,7 +115,7 @@ class DroidtoothPlugin implements DuplexPlugin {
 			throw new IOException(e.toString());
 		}
 		if(adapter == null) {
-			if(LOG.isLoggable(INFO)) LOG.info("Bluetooth is not supported");
+			LOG.info("Bluetooth is not supported");
 			return false;
 		}
 		running = true;
@@ -156,12 +156,12 @@ class DroidtoothPlugin implements DuplexPlugin {
 	private boolean enableBluetooth() {
 		if(adapter.isEnabled()) return true;
 		if(!callback.getConfig().getBoolean("enable", true)) {
-			if(LOG.isLoggable(INFO)) LOG.info("Not enabling Bluetooth");
+			LOG.info("Not enabling Bluetooth");
 			return false;
 		}
 		wasDisabled = true;
 		// Try to enable the adapter and wait for the result
-		if(LOG.isLoggable(INFO)) LOG.info("Enabling Bluetooth");
+		LOG.info("Enabling Bluetooth");
 		IntentFilter filter = new IntentFilter(ACTION_STATE_CHANGED);
 		BluetoothStateReceiver receiver = new BluetoothStateReceiver();
 		appContext.registerReceiver(receiver, filter);
@@ -171,12 +171,11 @@ class DroidtoothPlugin implements DuplexPlugin {
 				if(LOG.isLoggable(INFO)) LOG.info("Enabled: " + enabled);
 				return enabled;
 			} else {
-				if(LOG.isLoggable(INFO)) LOG.info("Could not enable Bluetooth");
+				LOG.info("Could not enable Bluetooth");
 				return false;
 			}
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Interrupted while enabling Bluetooth");
+			LOG.warning("Interrupted while enabling Bluetooth");
 			Thread.currentThread().interrupt();
 			return false;
 		}
@@ -233,7 +232,7 @@ class DroidtoothPlugin implements DuplexPlugin {
 	private void disableBluetooth() {
 		if(!adapter.isEnabled()) return;
 		// Try to disable the adapter and wait for the result
-		if(LOG.isLoggable(INFO)) LOG.info("Disabling Bluetooth");
+		LOG.info("Disabling Bluetooth");
 		IntentFilter filter = new IntentFilter(ACTION_STATE_CHANGED);
 		BluetoothStateReceiver receiver = new BluetoothStateReceiver();
 		appContext.registerReceiver(receiver, filter);
@@ -242,12 +241,10 @@ class DroidtoothPlugin implements DuplexPlugin {
 				boolean enabled = receiver.waitForStateChange();
 				if(LOG.isLoggable(INFO)) LOG.info("Enabled: " + enabled);
 			} else {
-				if(LOG.isLoggable(INFO))
-					LOG.info("Could not disable Bluetooth");
+				LOG.info("Could not disable Bluetooth");
 			}
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Interrupted while disabling Bluetooth");
+			LOG.warning("Interrupted while disabling Bluetooth");
 			Thread.currentThread().interrupt();
 		}
 	}
@@ -372,8 +369,7 @@ class DroidtoothPlugin implements DuplexPlugin {
 			BluetoothSocket s = socketLatch.waitForReference(timeout);
 			if(s != null) return new DroidtoothTransportConnection(this, s);
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Interrupted while exchanging invitations");
+			LOG.warning("Interrupted while exchanging invitations");
 			Thread.currentThread().interrupt();
 		} finally {
 			// Closing the socket will terminate the listener thread
@@ -425,13 +421,12 @@ class DroidtoothPlugin implements DuplexPlugin {
 			long end = now + timeout;
 			while(now < end && running && !socketLatch.isSet()) {
 				// Discover nearby devices
-				if(LOG.isLoggable(INFO)) LOG.info("Discovering nearby devices");
+				LOG.info("Discovering nearby devices");
 				List<String> addresses;
 				try {
 					addresses = discoverDevices(end - now);
 				} catch(InterruptedException e) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Interrupted while discovering devices");
+					LOG.warning("Interrupted while discovering devices");
 					return;
 				}
 				// Connect to any device with the right UUID
@@ -440,11 +435,9 @@ class DroidtoothPlugin implements DuplexPlugin {
 					if(now < end  && running && !socketLatch.isSet()) {
 						BluetoothSocket s = connect(address, uuid);
 						if(s == null) continue;
-						if(LOG.isLoggable(INFO))
-							LOG.info("Outgoing connection");
+						LOG.info("Outgoing connection");
 						if(!socketLatch.set(s)) {
-							if(LOG.isLoggable(INFO))
-								LOG.info("Closing redundant connection");
+							LOG.info("Closing redundant connection");
 							tryToClose(s);
 						}
 						return;
@@ -505,10 +498,9 @@ class DroidtoothPlugin implements DuplexPlugin {
 		public void run() {
 			try {
 				BluetoothSocket s = serverSocket.accept();
-				if(LOG.isLoggable(INFO)) LOG.info("Incoming connection");
+				LOG.info("Incoming connection");
 				if(!socketLatch.set(s)) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Closing redundant connection");
+					LOG.info("Closing redundant connection");
 					s.close();
 				}
 			} catch(IOException e) {
diff --git a/briar-android/src/org/briarproject/plugins/droidtooth/InsecureBluetooth.java b/briar-android/src/org/briarproject/plugins/droidtooth/InsecureBluetooth.java
index ce07581b6c..da92a46f3d 100644
--- a/briar-android/src/org/briarproject/plugins/droidtooth/InsecureBluetooth.java
+++ b/briar-android/src/org/briarproject/plugins/droidtooth/InsecureBluetooth.java
@@ -1,7 +1,5 @@
 package org.briarproject.plugins.droidtooth;
 
-import static java.util.logging.Level.INFO;
-
 import java.io.IOException;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
@@ -33,12 +31,12 @@ class InsecureBluetooth {
 	static BluetoothServerSocket listen(BluetoothAdapter adapter, String name,
 			UUID uuid) throws IOException {
 		if(Build.VERSION.SDK_INT >= 10) {
-			if(LOG.isLoggable(INFO)) LOG.info("Listening with new API");
+			LOG.info("Listening with new API");
 			return adapter.listenUsingInsecureRfcommWithServiceRecord(name,
 					uuid);
 		}
 		try {
-			if(LOG.isLoggable(INFO)) LOG.info("Listening via reflection");
+			LOG.info("Listening via reflection");
 			// Find an available channel
 			String className = BluetoothAdapter.class.getCanonicalName()
 					+ ".RfcommChannelPicker";
@@ -144,11 +142,11 @@ class InsecureBluetooth {
 	static BluetoothSocket createSocket(BluetoothDevice device, UUID uuid)
 			throws IOException {
 		if(Build.VERSION.SDK_INT >= 10) {
-			if(LOG.isLoggable(INFO)) LOG.info("Creating socket with new API");
+			LOG.info("Creating socket with new API");
 			return device.createInsecureRfcommSocketToServiceRecord(uuid);
 		}
 		try {
-			if(LOG.isLoggable(INFO)) LOG.info("Creating socket via reflection");
+			LOG.info("Creating socket via reflection");
 			Constructor<BluetoothSocket> constructor =
 					BluetoothSocket.class.getDeclaredConstructor(int.class,
 							int.class, boolean.class, boolean.class,
diff --git a/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java b/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java
index cccd2648e4..0c4e515cd4 100644
--- a/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java
+++ b/briar-android/src/org/briarproject/plugins/tor/TorPlugin.java
@@ -122,23 +122,23 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 		boolean startProcess = false;
 		try {
 			controlSocket = new Socket("127.0.0.1", CONTROL_PORT);
-			if(LOG.isLoggable(INFO)) LOG.info("Tor is already running");
+			LOG.info("Tor is already running");
 			if(readPidFile() == -1) {
 				controlSocket.close();
 				killZombieProcess();
 				startProcess = true;
 			}
 		} catch(IOException e) {
-			if(LOG.isLoggable(INFO)) LOG.info("Tor is not running");
+			LOG.info("Tor is not running");
 			startProcess = true;
 		}
 		if(startProcess) {
 			// Install the binary, GeoIP database and config file if necessary
 			if(!isInstalled() && !install()) {
-				if(LOG.isLoggable(INFO)) LOG.info("Could not install Tor");
+				LOG.info("Could not install Tor");
 				return false;
 			}
-			if(LOG.isLoggable(INFO)) LOG.info("Starting Tor");
+			LOG.info("Starting Tor");
 			// Watch for the auth cookie file being created/updated
 			cookieFile.getParentFile().mkdirs();
 			cookieFile.createNewFile();
@@ -172,14 +172,12 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 				}
 				// Wait for the auth cookie file to be created/updated
 				if(!latch.await(COOKIE_TIMEOUT, MILLISECONDS)) {
-					if(LOG.isLoggable(WARNING))
-						LOG.warning("Auth cookie not created");
+					LOG.warning("Auth cookie not created");
 					listFiles(torDirectory);
 					return false;
 				}
 			} catch(InterruptedException e1) {
-				if(LOG.isLoggable(WARNING))
-					LOG.warning("Interrupted while starting Tor");
+				LOG.warning("Interrupted while starting Tor");
 				return false;
 			}
 			// Now we should be able to connect to the new process
@@ -236,8 +234,7 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 			copy(in, out);
 			// Make the Tor binary executable
 			if(!setExecutable(torFile)) {
-				if(LOG.isLoggable(WARNING))
-					LOG.warning("Could not make Tor executable");
+				LOG.warning("Could not make Tor executable");
 				return false;
 			}
 			// Create a file to indicate that installation succeeded
@@ -291,8 +288,7 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			} catch(InterruptedException e) {
-				if(LOG.isLoggable(WARNING))
-					LOG.warning("Interrupted while executing chmod");
+				LOG.warning("Interrupted while executing chmod");
 				Thread.currentThread().interrupt();
 			} catch(SecurityException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -343,9 +339,9 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 		try {
 			return Integer.parseInt(new String(read(pidFile), "UTF-8").trim());
 		} catch(IOException e) {
-			if(LOG.isLoggable(WARNING)) LOG.warning("Could not read PID file");
+			LOG.warning("Could not read PID file");
 		} catch(NumberFormatException e) {
-			if(LOG.isLoggable(WARNING)) LOG.warning("Could not parse PID file");
+			LOG.warning("Could not parse PID file");
 		}
 		return -1;
 	}
@@ -383,20 +379,18 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 					found = true;
 				}
 			}
-			if(!found) if(LOG.isLoggable(INFO)) LOG.info("No zombies found");
+			if(!found) LOG.info("No zombies found");
 			scanner.close();
 		} catch(IOException e) {
-			if(LOG.isLoggable(WARNING))
-				LOG.warning("Could not parse ps output");
+			LOG.warning("Could not parse ps output");
 		} catch(SecurityException e) {
-			if(LOG.isLoggable(WARNING)) LOG.warning("Could not execute ps");
+			LOG.warning("Could not execute ps");
 		}
 	}
 
 	private void killTorProcess() {
 		if(tor != null) {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Killing Tor via destroy()");
+			LOG.info("Killing Tor via destroy()");
 			tor.destroy();
 		}
 		if(pid != -1) {
@@ -452,7 +446,7 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 	private void publishHiddenService(final String port) {
 		if(!running) return;
 		if(!hostnameFile.exists()) {
-			if(LOG.isLoggable(INFO)) LOG.info("Creating hidden service");
+			LOG.info("Creating hidden service");
 			try {
 				// Watch for the hostname file being created/updated
 				hostnameFile.getParentFile().mkdirs();
@@ -468,8 +462,7 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 				controlConnection.saveConf();
 				// Wait for the hostname file to be created/updated
 				if(!latch.await(HOSTNAME_TIMEOUT, MILLISECONDS)) {
-					if(LOG.isLoggable(WARNING))
-						LOG.warning("Hidden service not created");
+					LOG.warning("Hidden service not created");
 					listFiles(torDirectory);
 					return;
 				}
@@ -477,8 +470,7 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			} catch(InterruptedException e) {
-				if(LOG.isLoggable(WARNING))
-					LOG.warning("Interrupted while creating hidden service");
+				LOG.warning("Interrupted while creating hidden service");
 			}
 		}
 		// Publish the hidden service's onion hostname in transport properties
@@ -504,7 +496,7 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 				tryToClose(ss);
 				return;
 			}
-			if(LOG.isLoggable(INFO)) LOG.info("Connection received");
+			LOG.info("Connection received");
 			TorTransportConnection conn = new TorTransportConnection(this, s);
 			callback.incomingConnectionCreated(conn);
 			if(!running) return;
@@ -524,7 +516,7 @@ class TorPlugin implements DuplexPlugin, EventHandler {
 		if(networkStateReceiver != null)
 			appContext.unregisterReceiver(networkStateReceiver);
 		try {
-			if(LOG.isLoggable(INFO)) LOG.info("Stopping Tor");
+			LOG.info("Stopping Tor");
 			if(controlSocket == null)
 				controlSocket = new Socket("127.0.0.1", CONTROL_PORT);
 			if(controlConnection == null) {
diff --git a/briar-core/src/org/briarproject/db/DatabaseCleanerImpl.java b/briar-core/src/org/briarproject/db/DatabaseCleanerImpl.java
index 7c0993c677..b2d9cce65e 100644
--- a/briar-core/src/org/briarproject/db/DatabaseCleanerImpl.java
+++ b/briar-core/src/org/briarproject/db/DatabaseCleanerImpl.java
@@ -1,6 +1,5 @@
 package org.briarproject.db;
 
-import static java.util.logging.Level.INFO;
 import static java.util.logging.Level.WARNING;
 
 import java.util.TimerTask;
@@ -39,11 +38,11 @@ class DatabaseCleanerImpl extends TimerTask implements DatabaseCleaner {
 		if(callback == null) throw new IllegalStateException();
 		try {
 			if(callback.shouldCheckFreeSpace()) {
-				if(LOG.isLoggable(INFO)) LOG.info("Checking free space");
+				LOG.info("Checking free space");
 				callback.checkFreeSpaceAndClean();
 			}
 		} catch(DbClosedException e) {
-			if(LOG.isLoggable(INFO)) LOG.info("Database closed, exiting");
+			LOG.info("Database closed, exiting");
 		} catch(DbException e) {
 			if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			throw new Error(e); // Kill the application
diff --git a/briar-core/src/org/briarproject/db/JdbcDatabase.java b/briar-core/src/org/briarproject/db/JdbcDatabase.java
index 6979dfc268..ecb1b724c7 100644
--- a/briar-core/src/org/briarproject/db/JdbcDatabase.java
+++ b/briar-core/src/org/briarproject/db/JdbcDatabase.java
@@ -2,7 +2,6 @@ package org.briarproject.db;
 
 import static java.sql.Types.BINARY;
 import static java.sql.Types.VARCHAR;
-import static java.util.logging.Level.INFO;
 import static java.util.logging.Level.WARNING;
 import static org.briarproject.api.Author.Status.ANONYMOUS;
 import static org.briarproject.api.Author.Status.UNKNOWN;
@@ -544,8 +543,7 @@ abstract class JdbcDatabase implements Database<Connection> {
 				try {
 					connections.wait();
 				} catch(InterruptedException e) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Interrupted while closing connections");
+					LOG.warning("Interrupted while closing connections");
 					interrupted = true;
 				}
 				for(Connection c : connections) c.close();
diff --git a/briar-core/src/org/briarproject/invitation/AliceConnector.java b/briar-core/src/org/briarproject/invitation/AliceConnector.java
index 496d5a877e..18d603ba00 100644
--- a/briar-core/src/org/briarproject/invitation/AliceConnector.java
+++ b/briar-core/src/org/briarproject/invitation/AliceConnector.java
@@ -113,8 +113,7 @@ class AliceConnector extends Connector {
 			tryToClose(conn, true);
 			return;
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(WARNING))
-				LOG.warning("Interrupted while waiting for confirmation");
+			LOG.warning("Interrupted while waiting for confirmation");
 			group.remoteConfirmationFailed();
 			tryToClose(conn, true);
 			Thread.currentThread().interrupt();
diff --git a/briar-core/src/org/briarproject/invitation/BobConnector.java b/briar-core/src/org/briarproject/invitation/BobConnector.java
index 55ccebcf13..c51dec4e22 100644
--- a/briar-core/src/org/briarproject/invitation/BobConnector.java
+++ b/briar-core/src/org/briarproject/invitation/BobConnector.java
@@ -113,8 +113,7 @@ class BobConnector extends Connector {
 			tryToClose(conn, true);
 			return;
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(WARNING))
-				LOG.warning("Interrupted while waiting for confirmation");
+			LOG.warning("Interrupted while waiting for confirmation");
 			group.remoteConfirmationFailed();
 			tryToClose(conn, true);
 			Thread.currentThread().interrupt();
diff --git a/briar-core/src/org/briarproject/invitation/Connector.java b/briar-core/src/org/briarproject/invitation/Connector.java
index f10aa2687c..74d88dac0f 100644
--- a/briar-core/src/org/briarproject/invitation/Connector.java
+++ b/briar-core/src/org/briarproject/invitation/Connector.java
@@ -310,7 +310,7 @@ abstract class Connector extends Thread {
 	protected void tryToClose(DuplexTransportConnection conn,
 			boolean exception) {
 		try {
-			if(LOG.isLoggable(INFO)) LOG.info("Closing connection");
+			LOG.info("Closing connection");
 			conn.dispose(exception, true);
 		} catch(IOException e) {
 			if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
diff --git a/briar-core/src/org/briarproject/invitation/ConnectorGroup.java b/briar-core/src/org/briarproject/invitation/ConnectorGroup.java
index 862a411b3c..abc4a9ecc8 100644
--- a/briar-core/src/org/briarproject/invitation/ConnectorGroup.java
+++ b/briar-core/src/org/briarproject/invitation/ConnectorGroup.java
@@ -158,8 +158,7 @@ class ConnectorGroup extends Thread implements InvitationTask {
 		try {
 			for(Connector c : connectors) c.join();
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(WARNING))
-				LOG.warning("Interrupted while waiting for connectors");
+			LOG.warning("Interrupted while waiting for connectors");
 		}
 		// If none of the threads connected, inform the listeners
 		if(!connected.get()) {
diff --git a/briar-core/src/org/briarproject/lifecycle/LifecycleManagerImpl.java b/briar-core/src/org/briarproject/lifecycle/LifecycleManagerImpl.java
index ce4f0e5e09..15d0375fbd 100644
--- a/briar-core/src/org/briarproject/lifecycle/LifecycleManagerImpl.java
+++ b/briar-core/src/org/briarproject/lifecycle/LifecycleManagerImpl.java
@@ -53,7 +53,7 @@ class LifecycleManagerImpl implements LifecycleManager {
 
 	public boolean startServices() {
 		try {
-			if(LOG.isLoggable(INFO)) LOG.info("Starting");
+			LOG.info("Starting");
 			long start = clock.currentTimeMillis();
 			boolean reopened = db.open();
 			long duration = clock.currentTimeMillis() - start;
@@ -92,7 +92,7 @@ class LifecycleManagerImpl implements LifecycleManager {
 
 	public void stopServices() {
 		try {
-			if(LOG.isLoggable(INFO)) LOG.info("Shutting down");
+			LOG.info("Shutting down");
 			for(Service s : services) {
 				boolean stopped = s.stop();
 				if(LOG.isLoggable(INFO)) {
@@ -105,7 +105,7 @@ class LifecycleManagerImpl implements LifecycleManager {
 			if(LOG.isLoggable(INFO))
 				LOG.info(executors.size() + " executors shut down");
 			db.close();
-			if(LOG.isLoggable(INFO)) LOG.info("Database closed");
+			LOG.info("Database closed");
 			shutdownLatch.countDown();
 		} catch(DbException e) {
 			if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
diff --git a/briar-core/src/org/briarproject/messaging/duplex/DuplexConnection.java b/briar-core/src/org/briarproject/messaging/duplex/DuplexConnection.java
index b3279c3f19..853249cf6d 100644
--- a/briar-core/src/org/briarproject/messaging/duplex/DuplexConnection.java
+++ b/briar-core/src/org/briarproject/messaging/duplex/DuplexConnection.java
@@ -162,58 +162,53 @@ abstract class DuplexConnection implements EventListener {
 		try {
 			InputStream in = createConnectionReader().getInputStream();
 			PacketReader reader = packetReaderFactory.createPacketReader(in);
-			if(LOG.isLoggable(INFO)) LOG.info("Starting to read");
+			LOG.info("Starting to read");
 			while(!reader.eof()) {
 				if(reader.hasAck()) {
 					Ack a = reader.readAck();
-					if(LOG.isLoggable(INFO)) LOG.info("Received ack");
+					LOG.info("Received ack");
 					dbExecutor.execute(new ReceiveAck(a));
 				} else if(reader.hasMessage()) {
 					UnverifiedMessage m = reader.readMessage();
-					if(LOG.isLoggable(INFO)) LOG.info("Received message");
+					LOG.info("Received message");
 					cryptoExecutor.execute(new VerifyMessage(m));
 				} else if(reader.hasOffer()) {
 					Offer o = reader.readOffer();
-					if(LOG.isLoggable(INFO)) LOG.info("Received offer");
+					LOG.info("Received offer");
 					dbExecutor.execute(new ReceiveOffer(o));
 				} else if(reader.hasRequest()) {
 					Request r = reader.readRequest();
-					if(LOG.isLoggable(INFO)) LOG.info("Received request");
+					LOG.info("Received request");
 					dbExecutor.execute(new ReceiveRequest(r));
 				} else if(reader.hasRetentionAck()) {
 					RetentionAck a = reader.readRetentionAck();
-					if(LOG.isLoggable(INFO)) LOG.info("Received retention ack");
+					LOG.info("Received retention ack");
 					dbExecutor.execute(new ReceiveRetentionAck(a));
 				} else if(reader.hasRetentionUpdate()) {
 					RetentionUpdate u = reader.readRetentionUpdate();
-					if(LOG.isLoggable(INFO))
-						LOG.info("Received retention update");
+					LOG.info("Received retention update");
 					dbExecutor.execute(new ReceiveRetentionUpdate(u));
 				} else if(reader.hasSubscriptionAck()) {
 					SubscriptionAck a = reader.readSubscriptionAck();
-					if(LOG.isLoggable(INFO))
-						LOG.info("Received subscription ack");
+					LOG.info("Received subscription ack");
 					dbExecutor.execute(new ReceiveSubscriptionAck(a));
 				} else if(reader.hasSubscriptionUpdate()) {
 					SubscriptionUpdate u = reader.readSubscriptionUpdate();
-					if(LOG.isLoggable(INFO))
-						LOG.info("Received subscription update");
+					LOG.info("Received subscription update");
 					dbExecutor.execute(new ReceiveSubscriptionUpdate(u));
 				} else if(reader.hasTransportAck()) {
 					TransportAck a = reader.readTransportAck();
-					if(LOG.isLoggable(INFO))
-						LOG.info("Received transport ack");
+					LOG.info("Received transport ack");
 					dbExecutor.execute(new ReceiveTransportAck(a));
 				} else if(reader.hasTransportUpdate()) {
 					TransportUpdate u = reader.readTransportUpdate();
-					if(LOG.isLoggable(INFO))
-						LOG.info("Received transport update");
+					LOG.info("Received transport update");
 					dbExecutor.execute(new ReceiveTransportUpdate(u));
 				} else {
 					throw new FormatException();
 				}
 			}
-			if(LOG.isLoggable(INFO)) LOG.info("Finished reading");
+			LOG.info("Finished reading");
 			writerTasks.add(CLOSE);
 		} catch(IOException e) {
 			if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -227,7 +222,7 @@ abstract class DuplexConnection implements EventListener {
 		try {
 			OutputStream out = createConnectionWriter().getOutputStream();
 			writer = packetWriterFactory.createPacketWriter(out, true);
-			if(LOG.isLoggable(INFO)) LOG.info("Starting to write");
+			LOG.info("Starting to write");
 			// Send the initial packets
 			dbExecutor.execute(new GenerateTransportAcks());
 			dbExecutor.execute(new GenerateTransportUpdates());
@@ -242,13 +237,12 @@ abstract class DuplexConnection implements EventListener {
 			// Main loop
 			Runnable task = null;
 			while(true) {
-				if(LOG.isLoggable(INFO))
-					LOG.info("Waiting for something to write");
+				LOG.info("Waiting for something to write");
 				task = writerTasks.take();
 				if(task == CLOSE || task == DIE) break;
 				task.run();
 			}
-			if(LOG.isLoggable(INFO)) LOG.info("Finished writing");
+			LOG.info("Finished writing");
 			if(task == CLOSE) {
 				writer.flush();
 				writer.close();
@@ -257,8 +251,7 @@ abstract class DuplexConnection implements EventListener {
 				dispose(true, true);
 			}
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Interrupted while waiting for task");
+			LOG.warning("Interrupted while waiting for task");
 			dispose(true, true);
 		} catch(IOException e) {
 			if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -292,7 +285,7 @@ abstract class DuplexConnection implements EventListener {
 		public void run() {
 			try {
 				db.receiveAck(contactId, ack);
-				if(LOG.isLoggable(INFO)) LOG.info("DB received ack");
+				LOG.info("DB received ack");
 			} catch(DbException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			}
@@ -311,7 +304,7 @@ abstract class DuplexConnection implements EventListener {
 		public void run() {
 			try {
 				Message m = messageVerifier.verifyMessage(message);
-				if(LOG.isLoggable(INFO)) LOG.info("Verified message");
+				LOG.info("Verified message");
 				dbExecutor.execute(new ReceiveMessage(m));
 			} catch(GeneralSecurityException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -331,7 +324,7 @@ abstract class DuplexConnection implements EventListener {
 		public void run() {
 			try {
 				db.receiveMessage(contactId, message);
-				if(LOG.isLoggable(INFO)) LOG.info("DB received message");
+				LOG.info("DB received message");
 			} catch(DbException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			}
@@ -350,7 +343,7 @@ abstract class DuplexConnection implements EventListener {
 		public void run() {
 			try {
 				db.receiveOffer(contactId, offer);
-				if(LOG.isLoggable(INFO)) LOG.info("DB received offer");
+				LOG.info("DB received offer");
 			} catch(DbException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			}
@@ -369,7 +362,7 @@ abstract class DuplexConnection implements EventListener {
 		public void run() {
 			try {
 				db.receiveRequest(contactId, request);
-				if(LOG.isLoggable(INFO)) LOG.info("DB received request");
+				LOG.info("DB received request");
 			} catch(DbException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			}
@@ -388,7 +381,7 @@ abstract class DuplexConnection implements EventListener {
 		public void run() {
 			try {
 				db.receiveRetentionAck(contactId, ack);
-				if(LOG.isLoggable(INFO)) LOG.info("DB received retention ack");
+				LOG.info("DB received retention ack");
 			} catch(DbException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			}
@@ -407,8 +400,7 @@ abstract class DuplexConnection implements EventListener {
 		public void run() {
 			try {
 				db.receiveRetentionUpdate(contactId, update);
-				if(LOG.isLoggable(INFO))
-					LOG.info("DB received retention update");
+				LOG.info("DB received retention update");
 			} catch(DbException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			}
@@ -427,8 +419,7 @@ abstract class DuplexConnection implements EventListener {
 		public void run() {
 			try {
 				db.receiveSubscriptionAck(contactId, ack);
-				if(LOG.isLoggable(INFO))
-					LOG.info("DB received subscription ack");
+				LOG.info("DB received subscription ack");
 			} catch(DbException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			}
@@ -447,8 +438,7 @@ abstract class DuplexConnection implements EventListener {
 		public void run() {
 			try {
 				db.receiveSubscriptionUpdate(contactId, update);
-				if(LOG.isLoggable(INFO))
-					LOG.info("DB received subscription update");
+				LOG.info("DB received subscription update");
 			} catch(DbException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			}
@@ -467,7 +457,7 @@ abstract class DuplexConnection implements EventListener {
 		public void run() {
 			try {
 				db.receiveTransportAck(contactId, ack);
-				if(LOG.isLoggable(INFO)) LOG.info("DB received transport ack");
+				LOG.info("DB received transport ack");
 			} catch(DbException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			}
@@ -486,8 +476,7 @@ abstract class DuplexConnection implements EventListener {
 		public void run() {
 			try {
 				db.receiveTransportUpdate(contactId, update);
-				if(LOG.isLoggable(INFO))
-					LOG.info("DB received transport update");
+				LOG.info("DB received transport update");
 			} catch(DbException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
 			}
@@ -524,7 +513,7 @@ abstract class DuplexConnection implements EventListener {
 			assert writer != null;
 			try {
 				writer.writeAck(ack);
-				if(LOG.isLoggable(INFO)) LOG.info("Sent ack");
+				LOG.info("Sent ack");
 				dbExecutor.execute(new GenerateAck());
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -563,7 +552,7 @@ abstract class DuplexConnection implements EventListener {
 			assert writer != null;
 			try {
 				for(byte[] raw : batch) writer.writeMessage(raw);
-				if(LOG.isLoggable(INFO)) LOG.info("Sent batch");
+				LOG.info("Sent batch");
 				dbExecutor.execute(new GenerateBatch());
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -602,7 +591,7 @@ abstract class DuplexConnection implements EventListener {
 			assert writer != null;
 			try {
 				writer.writeOffer(offer);
-				if(LOG.isLoggable(INFO)) LOG.info("Sent offer");
+				LOG.info("Sent offer");
 				dbExecutor.execute(new GenerateOffer());
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -641,7 +630,7 @@ abstract class DuplexConnection implements EventListener {
 			assert writer != null;
 			try {
 				writer.writeRequest(request);
-				if(LOG.isLoggable(INFO)) LOG.info("Sent request");
+				LOG.info("Sent request");
 				dbExecutor.execute(new GenerateRequest());
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -678,7 +667,7 @@ abstract class DuplexConnection implements EventListener {
 			assert writer != null;
 			try {
 				writer.writeRetentionAck(ack);
-				if(LOG.isLoggable(INFO)) LOG.info("Sent retention ack");
+				LOG.info("Sent retention ack");
 				dbExecutor.execute(new GenerateRetentionAck());
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -716,7 +705,7 @@ abstract class DuplexConnection implements EventListener {
 			assert writer != null;
 			try {
 				writer.writeRetentionUpdate(update);
-				if(LOG.isLoggable(INFO)) LOG.info("Sent retention update");
+				LOG.info("Sent retention update");
 				dbExecutor.execute(new GenerateRetentionUpdate());
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -753,7 +742,7 @@ abstract class DuplexConnection implements EventListener {
 			assert writer != null;
 			try {
 				writer.writeSubscriptionAck(ack);
-				if(LOG.isLoggable(INFO)) LOG.info("Sent subscription ack");
+				LOG.info("Sent subscription ack");
 				dbExecutor.execute(new GenerateSubscriptionAck());
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -791,7 +780,7 @@ abstract class DuplexConnection implements EventListener {
 			assert writer != null;
 			try {
 				writer.writeSubscriptionUpdate(update);
-				if(LOG.isLoggable(INFO)) LOG.info("Sent subscription update");
+				LOG.info("Sent subscription update");
 				dbExecutor.execute(new GenerateSubscriptionUpdate());
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -829,7 +818,7 @@ abstract class DuplexConnection implements EventListener {
 			assert writer != null;
 			try {
 				for(TransportAck a : acks) writer.writeTransportAck(a);
-				if(LOG.isLoggable(INFO)) LOG.info("Sent transport acks");
+				LOG.info("Sent transport acks");
 				dbExecutor.execute(new GenerateTransportAcks());
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
@@ -867,7 +856,7 @@ abstract class DuplexConnection implements EventListener {
 			assert writer != null;
 			try {
 				for(TransportUpdate u : updates) writer.writeTransportUpdate(u);
-				if(LOG.isLoggable(INFO)) LOG.info("Sent transport updates");
+				LOG.info("Sent transport updates");
 				dbExecutor.execute(new GenerateTransportUpdates());
 			} catch(IOException e) {
 				if(LOG.isLoggable(WARNING)) LOG.log(WARNING, e.toString(), e);
diff --git a/briar-core/src/org/briarproject/messaging/duplex/DuplexConnectionFactoryImpl.java b/briar-core/src/org/briarproject/messaging/duplex/DuplexConnectionFactoryImpl.java
index cc512516d7..94d14c0215 100644
--- a/briar-core/src/org/briarproject/messaging/duplex/DuplexConnectionFactoryImpl.java
+++ b/briar-core/src/org/briarproject/messaging/duplex/DuplexConnectionFactoryImpl.java
@@ -1,7 +1,5 @@
 package org.briarproject.messaging.duplex;
 
-import static java.util.logging.Level.WARNING;
-
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
@@ -83,8 +81,7 @@ class DuplexConnectionFactoryImpl implements DuplexConnectionFactory {
 			DuplexTransportConnection transport) {
 		ConnectionContext ctx = keyManager.getConnectionContext(c, t);
 		if(ctx == null) {
-			if(LOG.isLoggable(WARNING))
-				LOG.warning("Could not create outgoing connection context");
+			LOG.warning("Could not create outgoing connection context");
 			return;
 		}
 		final DuplexConnection conn = new OutgoingDuplexConnection(dbExecutor,
diff --git a/briar-core/src/org/briarproject/messaging/simplex/SimplexConnectionFactoryImpl.java b/briar-core/src/org/briarproject/messaging/simplex/SimplexConnectionFactoryImpl.java
index 30645297f4..aeff21e837 100644
--- a/briar-core/src/org/briarproject/messaging/simplex/SimplexConnectionFactoryImpl.java
+++ b/briar-core/src/org/briarproject/messaging/simplex/SimplexConnectionFactoryImpl.java
@@ -1,7 +1,5 @@
 package org.briarproject.messaging.simplex;
 
-import static java.util.logging.Level.WARNING;
-
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
@@ -77,8 +75,7 @@ class SimplexConnectionFactoryImpl implements SimplexConnectionFactory {
 			SimplexTransportWriter w) {
 		ConnectionContext ctx = keyManager.getConnectionContext(c, t);
 		if(ctx == null) {
-			if(LOG.isLoggable(WARNING))
-				LOG.warning("Could not create outgoing connection context");
+			LOG.warning("Could not create outgoing connection context");
 			return;
 		}		
 		final OutgoingSimplexConnection conn = new OutgoingSimplexConnection(db,
diff --git a/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java b/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java
index 907737250f..214d310a72 100644
--- a/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java
+++ b/briar-core/src/org/briarproject/plugins/PluginManagerImpl.java
@@ -82,14 +82,14 @@ class PluginManagerImpl implements PluginManager {
 
 	public synchronized boolean start() {
 		// Instantiate and start the simplex plugins
-		if(LOG.isLoggable(INFO)) LOG.info("Starting simplex plugins");
+		LOG.info("Starting simplex plugins");
 		Collection<SimplexPluginFactory> sFactories =
 				simplexPluginConfig.getFactories();
 		final CountDownLatch sLatch = new CountDownLatch(sFactories.size());
 		for(SimplexPluginFactory factory : sFactories)
 			pluginExecutor.execute(new SimplexPluginStarter(factory, sLatch));
 		// Instantiate and start the duplex plugins
-		if(LOG.isLoggable(INFO)) LOG.info("Starting duplex plugins");
+		LOG.info("Starting duplex plugins");
 		Collection<DuplexPluginFactory> dFactories =
 				duplexPluginConfig.getFactories();
 		final CountDownLatch dLatch = new CountDownLatch(dFactories.size());
@@ -100,13 +100,12 @@ class PluginManagerImpl implements PluginManager {
 			sLatch.await();
 			dLatch.await();
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(WARNING))
-				LOG.warning("Interrupted while starting plugins");
+			LOG.warning("Interrupted while starting plugins");
 			Thread.currentThread().interrupt();
 			return false;
 		}
 		// Start the poller
-		if(LOG.isLoggable(INFO)) LOG.info("Starting poller");
+		LOG.info("Starting poller");
 		List<Plugin> start = new ArrayList<Plugin>(plugins.values());
 		poller.start(Collections.unmodifiableList(start));
 		return true;
@@ -114,15 +113,15 @@ class PluginManagerImpl implements PluginManager {
 
 	public synchronized boolean stop() {
 		// Stop the poller
-		if(LOG.isLoggable(INFO)) LOG.info("Stopping poller");
+		LOG.info("Stopping poller");
 		poller.stop();
 		final CountDownLatch latch = new CountDownLatch(plugins.size());
 		// Stop the simplex plugins
-		if(LOG.isLoggable(INFO)) LOG.info("Stopping simplex plugins");
+		LOG.info("Stopping simplex plugins");
 		for(SimplexPlugin plugin : simplexPlugins)
 			pluginExecutor.execute(new PluginStopper(plugin, latch));
 		// Stop the duplex plugins
-		if(LOG.isLoggable(INFO)) LOG.info("Stopping duplex plugins");
+		LOG.info("Stopping duplex plugins");
 		for(DuplexPlugin plugin : duplexPlugins)
 			pluginExecutor.execute(new PluginStopper(plugin, latch));
 		plugins.clear();
@@ -132,8 +131,7 @@ class PluginManagerImpl implements PluginManager {
 		try {
 			latch.await();
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(WARNING))
-				LOG.warning("Interrupted while stopping plugins");
+			LOG.warning("Interrupted while stopping plugins");
 			Thread.currentThread().interrupt();
 			return false;
 		}
diff --git a/briar-core/src/org/briarproject/plugins/PollerImpl.java b/briar-core/src/org/briarproject/plugins/PollerImpl.java
index b81d93d35a..170689a52e 100644
--- a/briar-core/src/org/briarproject/plugins/PollerImpl.java
+++ b/briar-core/src/org/briarproject/plugins/PollerImpl.java
@@ -59,7 +59,7 @@ class PollerImpl implements Poller, Runnable {
 		while(true) {
 			synchronized(this) {
 				if(pollTimes.isEmpty()) {
-					if(LOG.isLoggable(INFO)) LOG.info("Finished polling");
+					LOG.info("Finished polling");
 					return;
 				}
 				long now = clock.currentTimeMillis();
@@ -83,8 +83,7 @@ class PollerImpl implements Poller, Runnable {
 					try {
 						wait(p.time - now);
 					} catch(InterruptedException e) {
-						if(LOG.isLoggable(INFO))
-							LOG.info("Interrupted while waiting to poll");
+						LOG.warning("Interrupted while waiting to poll");
 						Thread.currentThread().interrupt();
 						return;
 					}
diff --git a/briar-core/src/org/briarproject/plugins/tcp/TcpPlugin.java b/briar-core/src/org/briarproject/plugins/tcp/TcpPlugin.java
index 10f9317432..56b788dae7 100644
--- a/briar-core/src/org/briarproject/plugins/tcp/TcpPlugin.java
+++ b/briar-core/src/org/briarproject/plugins/tcp/TcpPlugin.java
@@ -87,7 +87,7 @@ abstract class TcpPlugin implements DuplexPlugin {
 			}
 		}
 		if(!found) {
-			if(LOG.isLoggable(INFO)) LOG.info("Could not bind server socket");
+			LOG.info("Could not bind server socket");
 			return;
 		}
 		if(!running) {
diff --git a/briar-core/src/org/briarproject/reliability/ReliabilityLayerImpl.java b/briar-core/src/org/briarproject/reliability/ReliabilityLayerImpl.java
index 4f850e4fa8..5c0b6a95a5 100644
--- a/briar-core/src/org/briarproject/reliability/ReliabilityLayerImpl.java
+++ b/briar-core/src/org/briarproject/reliability/ReliabilityLayerImpl.java
@@ -70,8 +70,7 @@ class ReliabilityLayerImpl implements ReliabilityLayer, WriteHandler {
 						}
 					}
 				} catch(InterruptedException e) {
-					if(LOG.isLoggable(WARNING))
-						LOG.warning("Interrupted while waiting to write");
+					LOG.warning("Interrupted while waiting to write");
 					Thread.currentThread().interrupt();
 					running = false;
 				} catch(IOException e) {
diff --git a/briar-core/src/org/briarproject/transport/ConnectionRegistryImpl.java b/briar-core/src/org/briarproject/transport/ConnectionRegistryImpl.java
index 7bd6e65b14..94a2b93ea4 100644
--- a/briar-core/src/org/briarproject/transport/ConnectionRegistryImpl.java
+++ b/briar-core/src/org/briarproject/transport/ConnectionRegistryImpl.java
@@ -42,7 +42,7 @@ class ConnectionRegistryImpl implements ConnectionRegistry {
 	}
 
 	public void registerConnection(ContactId c, TransportId t) {
-		if(LOG.isLoggable(INFO)) LOG.info("Connection registered");
+		LOG.info("Connection registered");
 		boolean firstConnection = false;
 		synchronized(this) {
 			Map<ContactId, Integer> m = connections.get(t);
@@ -62,13 +62,13 @@ class ConnectionRegistryImpl implements ConnectionRegistry {
 			}
 		}
 		if(firstConnection) {
-			if(LOG.isLoggable(INFO)) LOG.info("Contact connected");
+			LOG.info("Contact connected");
 			for(ConnectionListener l : listeners) l.contactConnected(c);
 		}
 	}
 
 	public void unregisterConnection(ContactId c, TransportId t) {
-		if(LOG.isLoggable(INFO)) LOG.info("Connection unregistered");
+		LOG.info("Connection unregistered");
 		boolean lastConnection = false;
 		synchronized(this) {
 			Map<ContactId, Integer> m = connections.get(t);
@@ -90,7 +90,7 @@ class ConnectionRegistryImpl implements ConnectionRegistry {
 			}
 		}
 		if(lastConnection) {
-			if(LOG.isLoggable(INFO)) LOG.info("Contact disconnected");
+			LOG.info("Contact disconnected");
 			for(ConnectionListener l : listeners) l.contactDisconnected(c);
 		}
 	}
diff --git a/briar-core/src/org/briarproject/transport/KeyManagerImpl.java b/briar-core/src/org/briarproject/transport/KeyManagerImpl.java
index c117e55247..6bffe0f627 100644
--- a/briar-core/src/org/briarproject/transport/KeyManagerImpl.java
+++ b/briar-core/src/org/briarproject/transport/KeyManagerImpl.java
@@ -1,6 +1,5 @@
 package org.briarproject.transport;
 
-import static java.util.logging.Level.INFO;
 import static java.util.logging.Level.WARNING;
 import static org.briarproject.api.transport.TransportConstants.MAX_CLOCK_DIFFERENCE;
 
@@ -116,7 +115,7 @@ class KeyManagerImpl extends TimerTask implements KeyManager, EventListener {
 			// Discard the secret if the transport has been removed
 			Long maxLatency = maxLatencies.get(s.getTransportId());
 			if(maxLatency == null) {
-				if(LOG.isLoggable(INFO)) LOG.info("Discarding obsolete secret");
+				LOG.info("Discarding obsolete secret");
 				ByteUtils.erase(s.getSecret());
 				continue;
 			}
@@ -234,14 +233,14 @@ class KeyManagerImpl extends TimerTask implements KeyManager, EventListener {
 			TransportId t) {
 		TemporarySecret s = currentSecrets.get(new EndpointKey(c, t));
 		if(s == null) {
-			if(LOG.isLoggable(INFO)) LOG.info("No secret for endpoint");
+			LOG.info("No secret for endpoint");
 			return null;
 		}
 		long connection;
 		try {
 			connection = db.incrementConnectionCounter(c, t, s.getPeriod());
 			if(connection == -1) {
-				if(LOG.isLoggable(INFO)) LOG.info("No counter for period");
+				LOG.info("No counter for period");
 				return null;
 			}
 		} catch(DbException e) {
diff --git a/briar-desktop/src/org/briarproject/lifecycle/WindowsShutdownManagerImpl.java b/briar-desktop/src/org/briarproject/lifecycle/WindowsShutdownManagerImpl.java
index 82eac82dc7..5b1715cfa5 100644
--- a/briar-desktop/src/org/briarproject/lifecycle/WindowsShutdownManagerImpl.java
+++ b/briar-desktop/src/org/briarproject/lifecycle/WindowsShutdownManagerImpl.java
@@ -2,7 +2,6 @@ package org.briarproject.lifecycle;
 
 import static com.sun.jna.Library.OPTION_FUNCTION_MAPPER;
 import static com.sun.jna.Library.OPTION_TYPE_MAPPER;
-import static java.util.logging.Level.INFO;
 import static java.util.logging.Level.WARNING;
 
 import java.util.Collections;
@@ -64,8 +63,7 @@ class WindowsShutdownManagerImpl extends ShutdownManagerImpl {
 		if(OsUtils.isWindows()) {
 			new EventLoop().start();
 		} else {
-			if(LOG.isLoggable(WARNING))
-				LOG.warning("Windows shutdown manager used on non-Windows OS");
+			LOG.warning("Windows shutdown manager used on non-Windows OS");
 		}
 		initialised = true;
 	}
@@ -80,8 +78,7 @@ class WindowsShutdownManagerImpl extends ShutdownManagerImpl {
 			try {
 				hook.join();
 			} catch(InterruptedException e) {
-				if(LOG.isLoggable(INFO))
-					LOG.info("Interrupted while running shutdown hooks");
+				LOG.warning("Interrupted while running shutdown hooks");
 				interrupted = true;
 			}
 		}
@@ -119,13 +116,11 @@ class WindowsShutdownManagerImpl extends ShutdownManagerImpl {
 				try {
 					// Use SetWindowLongPtr if available (64-bit safe)
 					user32.SetWindowLongPtr(hwnd, GWL_WNDPROC, proc);
-					if(LOG.isLoggable(INFO))
-						LOG.info("Registered 64-bit callback");
+					LOG.info("Registered 64-bit callback");
 				} catch(UnsatisfiedLinkError e) {
 					// Use SetWindowLong if SetWindowLongPtr isn't available
 					user32.SetWindowLong(hwnd, GWL_WNDPROC, proc);
-					if(LOG.isLoggable(INFO))
-						LOG.info("Registered 32-bit callback");
+					LOG.info("Registered 32-bit callback");
 				}
 				// Handle events until the window is destroyed
 				MSG msg = new MSG();
diff --git a/briar-desktop/src/org/briarproject/plugins/bluetooth/BluetoothPlugin.java b/briar-desktop/src/org/briarproject/plugins/bluetooth/BluetoothPlugin.java
index ba082128ba..6c71796a74 100644
--- a/briar-desktop/src/org/briarproject/plugins/bluetooth/BluetoothPlugin.java
+++ b/briar-desktop/src/org/briarproject/plugins/bluetooth/BluetoothPlugin.java
@@ -268,8 +268,7 @@ class BluetoothPlugin implements DuplexPlugin {
 			StreamConnection s = socketLatch.waitForReference(timeout);
 			if(s != null) return new BluetoothTransportConnection(this, s);
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Interrupted while exchanging invitations");
+			LOG.warning("Interrupted while exchanging invitations");
 			Thread.currentThread().interrupt();
 		} finally {
 			// Closing the socket will terminate the listener thread
@@ -307,8 +306,7 @@ class BluetoothPlugin implements DuplexPlugin {
 			long end = now + timeout;
 			while(now < end && running && !socketLatch.isSet()) {
 				if(!discoverySemaphore.tryAcquire()) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Another device discovery is in progress");
+					LOG.info("Another device discovery is in progress");
 					return;
 				}
 				try {
@@ -319,10 +317,9 @@ class BluetoothPlugin implements DuplexPlugin {
 					if(url == null) continue;
 					StreamConnection s = connect(url);
 					if(s == null) continue;
-					if(LOG.isLoggable(INFO)) LOG.info("Outgoing connection");
+					LOG.info("Outgoing connection");
 					if(!socketLatch.set(s)) {
-						if(LOG.isLoggable(INFO))
-							LOG.info("Closing redundant connection");
+						LOG.info("Closing redundant connection");
 						tryToClose(s);
 					}
 					return;
@@ -331,8 +328,7 @@ class BluetoothPlugin implements DuplexPlugin {
 						LOG.log(WARNING, e.toString(), e);
 					return;
 				} catch(InterruptedException e) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Interrupted while waiting for URL");
+					LOG.warning("Interrupted while waiting for URL");
 					Thread.currentThread().interrupt();
 					return;
 				} finally {
@@ -364,15 +360,13 @@ class BluetoothPlugin implements DuplexPlugin {
 
 		@Override
 		public void run() {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Listening for invitation connections");
+			LOG.info("Listening for invitation connections");
 			// Listen until a connection is received or the socket is closed
 			try {
 				StreamConnection s = serverSocket.acceptAndOpen();
-				if(LOG.isLoggable(INFO)) LOG.info("Incoming connection");
+				LOG.info("Incoming connection");
 				if(!socketLatch.set(s)) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Closing redundant connection");
+					LOG.info("Closing redundant connection");
 					s.close();
 				}
 			} catch(IOException e) {
diff --git a/briar-desktop/src/org/briarproject/plugins/file/PollingRemovableDriveMonitor.java b/briar-desktop/src/org/briarproject/plugins/file/PollingRemovableDriveMonitor.java
index 40e9bc9751..a7b0208c74 100644
--- a/briar-desktop/src/org/briarproject/plugins/file/PollingRemovableDriveMonitor.java
+++ b/briar-desktop/src/org/briarproject/plugins/file/PollingRemovableDriveMonitor.java
@@ -1,7 +1,5 @@
 package org.briarproject.plugins.file;
 
-import static java.util.logging.Level.INFO;
-
 import java.io.File;
 import java.io.IOException;
 import java.util.Collection;
@@ -56,8 +54,7 @@ class PollingRemovableDriveMonitor implements RemovableDriveMonitor, Runnable {
 				drives = newDrives;
 			}
 		} catch(InterruptedException e) {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Interrupted while waiting to poll");
+			LOG.warning("Interrupted while waiting to poll");
 			Thread.currentThread().interrupt();
 		} catch(IOException e) {
 			callback.exceptionThrown(e);
diff --git a/briar-desktop/src/org/briarproject/plugins/modem/ModemImpl.java b/briar-desktop/src/org/briarproject/plugins/modem/ModemImpl.java
index 45fec1e13a..c7d035fed6 100644
--- a/briar-desktop/src/org/briarproject/plugins/modem/ModemImpl.java
+++ b/briar-desktop/src/org/briarproject/plugins/modem/ModemImpl.java
@@ -56,7 +56,7 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener {
 	}
 
 	public boolean start() throws IOException {
-		if(LOG.isLoggable(INFO)) LOG.info("Starting");
+		LOG.info("Starting");
 		try {
 			stateChange.acquire();
 		} catch(InterruptedException e) {
@@ -121,7 +121,7 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener {
 	}
 
 	public void stop() throws IOException {
-		if(LOG.isLoggable(INFO)) LOG.info("Stopping");
+		LOG.info("Stopping");
 		// Wake any threads that are waiting to connect
 		synchronized(this) {
 			initialised = false;
@@ -149,8 +149,7 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener {
 		ReliabilityLayer reliability;
 		synchronized(this) {
 			if(this.reliability == null) {
-				if(LOG.isLoggable(INFO))
-					LOG.info("Not hanging up - already on the hook");
+				LOG.info("Not hanging up - already on the hook");
 				return;
 			}
 			reliability = this.reliability;
@@ -158,7 +157,7 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener {
 			connected = false;
 		}
 		reliability.stop();
-		if(LOG.isLoggable(INFO)) LOG.info("Hanging up");
+		LOG.info("Hanging up");
 		try {
 			clock.sleep(ESCAPE_SEQUENCE_GUARD_TIME);
 			port.writeBytes("+++".getBytes("US-ASCII"));
@@ -176,8 +175,7 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener {
 
 	public boolean dial(String number) throws IOException {
 		if(!stateChange.tryAcquire()) {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Not dialling - state change in progress");
+			LOG.info("Not dialling - state change in progress");
 			return false;
 		}
 		try {
@@ -185,19 +183,17 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener {
 					reliabilityFactory.createReliabilityLayer(this);
 			synchronized(this) {
 				if(!initialised) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Not dialling - modem not initialised");
+					LOG.info("Not dialling - modem not initialised");
 					return false;
 				}
 				if(this.reliability != null) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Not dialling - call in progress");
+					LOG.info("Not dialling - call in progress");
 					return false;
 				}
 				this.reliability = reliability;
 			}
 			reliability.start();
-			if(LOG.isLoggable(INFO)) LOG.info("Dialling");
+			LOG.info("Dialling");
 			try {
 				String dial = "ATDT" + number + "\r\n";
 				port.writeBytes(dial.getBytes("US-ASCII"));
@@ -276,7 +272,7 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener {
 				byte[] b = port.readBytes();
 				if(!handleData(b)) handleText(b);
 			} else if(ev.isDSR() && ev.getEventValue() == 0) {
-				if(LOG.isLoggable(INFO)) LOG.info("Remote end hung up");
+				LOG.info("Remote end hung up");
 				hangUp();
 			} else {
 				if(LOG.isLoggable(INFO)) {
@@ -355,8 +351,7 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener {
 
 	private void answer() throws IOException {
 		if(!stateChange.tryAcquire()) {
-			if(LOG.isLoggable(INFO))
-				LOG.info("Not answering - state change in progress");
+			LOG.info("Not answering - state change in progress");
 			return;
 		}
 		try {
@@ -364,19 +359,17 @@ class ModemImpl implements Modem, WriteHandler, SerialPortEventListener {
 					reliabilityFactory.createReliabilityLayer(this);
 			synchronized(this) {
 				if(!initialised) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Not answering - modem not initialised");
+					LOG.info("Not answering - modem not initialised");
 					return;
 				}
 				if(this.reliability != null) {
-					if(LOG.isLoggable(INFO))
-						LOG.info("Not answering - call in progress");
+					LOG.info("Not answering - call in progress");
 					return;
 				}
 				this.reliability = reliability;
 			}
 			reliability.start();
-			if(LOG.isLoggable(INFO)) LOG.info("Answering");
+			LOG.info("Answering");
 			try {
 				port.writeBytes("ATA\r\n".getBytes("US-ASCII"));
 			} catch(IOException e) {
diff --git a/briar-desktop/src/org/briarproject/plugins/modem/ModemPlugin.java b/briar-desktop/src/org/briarproject/plugins/modem/ModemPlugin.java
index 4913cd82db..7d23028cd2 100644
--- a/briar-desktop/src/org/briarproject/plugins/modem/ModemPlugin.java
+++ b/briar-desktop/src/org/briarproject/plugins/modem/ModemPlugin.java
@@ -151,14 +151,13 @@ class ModemPlugin implements DuplexPlugin, Modem.Callback {
 				if(resetModem()) continue;
 				break;
 			}
-			if(LOG.isLoggable(INFO)) LOG.info("Outgoing call connected");
+			LOG.info("Outgoing call connected");
 			ModemTransportConnection conn = new ModemTransportConnection();
 			callback.outgoingConnectionCreated(c, conn);
 			try {
 				conn.waitForDisposal();
 			} catch(InterruptedException e) {
-				if(LOG.isLoggable(WARNING))
-					LOG.warning("Interrupted while polling");
+				LOG.warning("Interrupted while polling");
 				Thread.currentThread().interrupt();
 				break;
 			}
@@ -221,7 +220,7 @@ class ModemPlugin implements DuplexPlugin, Modem.Callback {
 	}
 
 	public void incomingCallConnected() {
-		if(LOG.isLoggable(INFO)) LOG.info("Incoming call connected");
+		LOG.info("Incoming call connected");
 		callback.incomingConnectionCreated(new ModemTransportConnection());
 	}
 
@@ -247,7 +246,7 @@ class ModemPlugin implements DuplexPlugin, Modem.Callback {
 		}
 
 		public void dispose(boolean exception, boolean recognised) {
-			if(LOG.isLoggable(INFO)) LOG.info("Call disconnected");
+			LOG.info("Call disconnected");
 			try {
 				modem.hangUp();
 			} catch(IOException e) {
-- 
GitLab