You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2018/02/01 10:07:35 UTC

[isis] branch maint-1.16.1 updated (c4c9861 -> a4fc90b)

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a change to branch maint-1.16.1
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from c4c9861  ISIS-1858
     new 4fdcc8f  ISIS-1858: converts logging calls to use slf4j placeholders rather than string concatenation.
     new a4fc90b  ISIS-1569: improves log message and javadoc in BackgroundCommandExecution, is all.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../queryresultscache/QueryResultsCache.java       |  7 +--
 .../isis/core/runtime/logging/SnapshotServer.java  | 16 +++--
 .../commons/config/IsisConfigurationDefault.java   |  4 +-
 .../configbuilder/IsisConfigurationBuilder.java    | 15 ++---
 .../commons/encoding/DebugDataInputExtended.java   | 28 +++------
 .../commons/encoding/DebugDataOutputExtended.java  | 30 +++-------
 .../resource/ResourceStreamSourceAbstract.java     |  9 +--
 .../ResourceStreamSourceChainOfResponsibility.java |  4 +-
 .../resource/ResourceStreamSourceComposite.java    |  4 +-
 .../core/metamodel/services/ServicesInjector.java  |  5 +-
 .../services/grid/GridSystemServiceAbstract.java   |  4 +-
 .../metamodel/specloader/ServiceInitializer.java   |  4 +-
 .../metamodel/specloader/SpecificationLoader.java  |  4 +-
 .../specloader/specimpl/FacetedMethodsBuilder.java | 14 ++---
 .../specimpl/ObjectSpecificationAbstract.java      |  4 +-
 .../specimpl/dflt/ObjectSpecificationDefault.java  |  2 +-
 .../isis/core/runtime/snapshot/XmlSnapshot.java    | 60 ++++++++++---------
 .../isis/core/webapp/content/ResourceServlet.java  | 14 ++---
 .../diagnostics/IsisLogOnExceptionFilter.java      |  2 +-
 .../core/webapp/routing/RedirectToDocsFilter.java  |  9 +--
 .../ObjectFixtureFilePersistor.java                |  4 +-
 .../fixturedomainservice/ObjectFixtureService.java |  3 +-
 .../fixtures/FixturesInstallerDelegate.java        |  4 +-
 .../FixturesInstallerFromConfiguration.java        |  2 +-
 .../HeadlessWithBootstrappingAbstract.java         |  4 +-
 .../apache/isis/core/runtime/memento/Memento.java  | 18 +++---
 .../runtime/persistence/adapter/PojoAdapter.java   |  4 +-
 .../runner/opts/OptionHandlerAppManifest.java      |  2 +-
 .../runner/opts/OptionHandlerFixtureAbstract.java  |  2 +-
 .../runner/opts/OptionHandlerInitParameters.java   |  4 +-
 .../runner/opts/OptionHandlerSystemProperties.java |  4 +-
 .../core/runtime/services/ServiceInstantiator.java |  6 +-
 .../ServicesInstallerFromConfiguration.java        |  2 +-
 ...cesInstallerFromConfigurationAndAnnotation.java |  2 +-
 .../background/BackgroundCommandExecution.java     | 18 ++++--
 .../menubars/bootstrap3/MenuBarsServiceBS3.java    |  2 +-
 .../system/internal/IsisLocaleInitializer.java     |  4 +-
 .../system/internal/IsisTimeZoneInitializer.java   |  4 +-
 .../persistence/PersistenceQueryFactory.java       |  2 +-
 .../system/persistence/PersistenceSession.java     | 68 ++++++++--------------
 .../persistence/PersistenceSessionFactory.java     | 10 ++--
 .../adaptermanager/OidAdapterHashMap.java          |  6 +-
 .../adaptermanager/PojoAdapterHashMap.java         |  6 +-
 .../system/session/IsisSessionFactoryBuilder.java  |  4 +-
 .../system/transaction/IsisTransaction.java        | 39 ++++---------
 .../system/transaction/IsisTransactionManager.java |  2 +-
 .../IsisComponentProviderUsingInstallers.java      | 12 ++--
 .../isis/core/webapp/IsisWebAppBootstrapper.java   |  4 +-
 .../CreateSchemaObjectFromClassMetadata.java       |  2 +-
 .../commands/DataNucleusCreateObjectCommand.java   |  2 +-
 .../commands/DataNucleusDeleteObjectCommand.java   |  2 +-
 .../PersistenceQueryFindAllInstancesProcessor.java |  2 +-
 ...sistenceQueryFindUsingApplibQueryProcessor.java |  4 +-
 .../datanucleus/persistence/queries/QueryUtil.java |  4 +-
 .../wicket/viewer/IsisWicketApplication.java       |  8 +--
 .../integration/wicket/WebRequestCycleForIsis.java |  4 +-
 .../services/TranslationsResolverWicket.java       |  2 +-
 .../model/models/ScalarModelWithMultiPending.java  | 16 ++---
 .../model/models/ScalarModelWithPending.java       | 18 ++----
 .../widgets/themepicker/ThemeChooser.java          |  2 +-
 .../wicket/ui/panels/FormExecutorDefault.java      |  2 +-
 61 files changed, 223 insertions(+), 326 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
danhaywood@apache.org.

[isis] 01/02: ISIS-1858: converts logging calls to use slf4j placeholders rather than string concatenation.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch maint-1.16.1
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 4fdcc8fd8fcda52f5c101f2ca5bac61759938b59
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Feb 1 10:06:43 2018 +0000

    ISIS-1858: converts logging calls to use slf4j placeholders rather than string concatenation.
    
    Removes some isDebugEnabled and isInfoEnabled guards where no longer really necessary.
---
 .../queryresultscache/QueryResultsCache.java       |  7 +--
 .../isis/core/runtime/logging/SnapshotServer.java  | 16 +++--
 .../commons/config/IsisConfigurationDefault.java   |  4 +-
 .../configbuilder/IsisConfigurationBuilder.java    | 15 ++---
 .../commons/encoding/DebugDataInputExtended.java   | 28 +++------
 .../commons/encoding/DebugDataOutputExtended.java  | 30 +++-------
 .../resource/ResourceStreamSourceAbstract.java     |  9 +--
 .../ResourceStreamSourceChainOfResponsibility.java |  4 +-
 .../resource/ResourceStreamSourceComposite.java    |  4 +-
 .../core/metamodel/services/ServicesInjector.java  |  5 +-
 .../services/grid/GridSystemServiceAbstract.java   |  4 +-
 .../metamodel/specloader/ServiceInitializer.java   |  4 +-
 .../metamodel/specloader/SpecificationLoader.java  |  4 +-
 .../specloader/specimpl/FacetedMethodsBuilder.java | 14 ++---
 .../specimpl/ObjectSpecificationAbstract.java      |  4 +-
 .../specimpl/dflt/ObjectSpecificationDefault.java  |  2 +-
 .../isis/core/runtime/snapshot/XmlSnapshot.java    | 60 ++++++++++---------
 .../isis/core/webapp/content/ResourceServlet.java  | 14 ++---
 .../diagnostics/IsisLogOnExceptionFilter.java      |  2 +-
 .../core/webapp/routing/RedirectToDocsFilter.java  |  9 +--
 .../ObjectFixtureFilePersistor.java                |  4 +-
 .../fixturedomainservice/ObjectFixtureService.java |  3 +-
 .../fixtures/FixturesInstallerDelegate.java        |  4 +-
 .../FixturesInstallerFromConfiguration.java        |  2 +-
 .../HeadlessWithBootstrappingAbstract.java         |  4 +-
 .../apache/isis/core/runtime/memento/Memento.java  | 18 +++---
 .../runtime/persistence/adapter/PojoAdapter.java   |  4 +-
 .../runner/opts/OptionHandlerAppManifest.java      |  2 +-
 .../runner/opts/OptionHandlerFixtureAbstract.java  |  2 +-
 .../runner/opts/OptionHandlerInitParameters.java   |  4 +-
 .../runner/opts/OptionHandlerSystemProperties.java |  4 +-
 .../core/runtime/services/ServiceInstantiator.java |  6 +-
 .../ServicesInstallerFromConfiguration.java        |  2 +-
 ...cesInstallerFromConfigurationAndAnnotation.java |  2 +-
 .../menubars/bootstrap3/MenuBarsServiceBS3.java    |  2 +-
 .../system/internal/IsisLocaleInitializer.java     |  4 +-
 .../system/internal/IsisTimeZoneInitializer.java   |  4 +-
 .../persistence/PersistenceQueryFactory.java       |  2 +-
 .../system/persistence/PersistenceSession.java     | 68 ++++++++--------------
 .../persistence/PersistenceSessionFactory.java     | 10 ++--
 .../adaptermanager/OidAdapterHashMap.java          |  6 +-
 .../adaptermanager/PojoAdapterHashMap.java         |  6 +-
 .../system/session/IsisSessionFactoryBuilder.java  |  4 +-
 .../system/transaction/IsisTransaction.java        | 39 ++++---------
 .../system/transaction/IsisTransactionManager.java |  2 +-
 .../IsisComponentProviderUsingInstallers.java      | 12 ++--
 .../isis/core/webapp/IsisWebAppBootstrapper.java   |  4 +-
 .../CreateSchemaObjectFromClassMetadata.java       |  2 +-
 .../commands/DataNucleusCreateObjectCommand.java   |  2 +-
 .../commands/DataNucleusDeleteObjectCommand.java   |  2 +-
 .../PersistenceQueryFindAllInstancesProcessor.java |  2 +-
 ...sistenceQueryFindUsingApplibQueryProcessor.java |  4 +-
 .../datanucleus/persistence/queries/QueryUtil.java |  4 +-
 .../wicket/viewer/IsisWicketApplication.java       |  8 +--
 .../integration/wicket/WebRequestCycleForIsis.java |  4 +-
 .../services/TranslationsResolverWicket.java       |  2 +-
 .../model/models/ScalarModelWithMultiPending.java  | 16 ++---
 .../model/models/ScalarModelWithPending.java       | 18 ++----
 .../widgets/themepicker/ThemeChooser.java          |  2 +-
 .../wicket/ui/panels/FormExecutorDefault.java      |  2 +-
 60 files changed, 209 insertions(+), 322 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
index c339b54..f2c93df 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
@@ -206,9 +206,7 @@ public class QueryResultsCache implements WithTransactionScope {
 
     @Programmatic
     public <T> void put(final Key cacheKey, final T result) {
-        if(LOG.isDebugEnabled()) {
-            LOG.debug("PUT: " + cacheKey);
-        }
+        LOG.debug("PUT: {}", cacheKey);
         cache.put(cacheKey, new Value<T>(result));
     }
 
@@ -216,8 +214,7 @@ public class QueryResultsCache implements WithTransactionScope {
         if(!LOG.isDebugEnabled()) { 
             return; 
         } 
-        String hitOrMiss = cacheValue != null ? "HIT" : "MISS";
-        LOG.debug( hitOrMiss + ": " + cacheKey.toString());
+        LOG.debug("{}: {}", (cacheValue != null ? "HIT" : "MISS"), cacheKey.toString());
     }
 
     /**
diff --git a/core/log4j/src/main/java/org/apache/isis/core/runtime/logging/SnapshotServer.java b/core/log4j/src/main/java/org/apache/isis/core/runtime/logging/SnapshotServer.java
index abda4a2..9d39508 100644
--- a/core/log4j/src/main/java/org/apache/isis/core/runtime/logging/SnapshotServer.java
+++ b/core/log4j/src/main/java/org/apache/isis/core/runtime/logging/SnapshotServer.java
@@ -28,11 +28,9 @@ import java.net.ServerSocket;
 import java.net.Socket;
 import java.util.Properties;
 
-import org.apache.log4j.spi.LoggerFactory;
-
 public class SnapshotServer {
     private static final String SNAPSHOT_PROPERTIES = "snapshot.properties";
-    private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(SnapshotServer.class);
+    private static final org.apache.log4j.Logger LOG4J = org.apache.log4j.Logger.getLogger(SnapshotServer.class);
 
     public static void main(final String[] args) {
         org.apache.log4j.BasicConfigurator.configure();
@@ -48,17 +46,17 @@ public class SnapshotServer {
             propIn = new FileInputStream(SNAPSHOT_PROPERTIES);
             prop.load(propIn);
         } catch (final FileNotFoundException e) {
-            LOG.error("failed to load properties file, " + SNAPSHOT_PROPERTIES);
+            LOG4J.error("failed to load properties file, " + SNAPSHOT_PROPERTIES);
             return;
         } catch (final IOException e) {
-            LOG.error("failed to read properties file, " + SNAPSHOT_PROPERTIES, e);
+            LOG4J.error("failed to read properties file, " + SNAPSHOT_PROPERTIES, e);
             return;
         } finally {
             if (propIn != null) {
                 try {
                     propIn.close();
                 } catch (final IOException e) {
-                    LOG.error("failed to close properties file, " + SNAPSHOT_PROPERTIES, e);
+                    LOG4J.error("failed to close properties file, " + SNAPSHOT_PROPERTIES, e);
                     return;
                 }
             }
@@ -75,7 +73,7 @@ public class SnapshotServer {
         try {
             server = new ServerSocket(port);
         } catch (final IOException e) {
-            LOG.error("failed to start server", e);
+            LOG4J.error("failed to start server", e);
             return;
         }
 
@@ -83,7 +81,7 @@ public class SnapshotServer {
             try {
                 final Socket s = server.accept();
 
-                LOG.info("receiving log from " + s.getInetAddress().getHostName());
+                LOG4J.info("receiving log from " + s.getInetAddress().getHostName());
 
                 final BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream(), "8859_1"));
 
@@ -97,7 +95,7 @@ public class SnapshotServer {
 
                 in.close();
             } catch (final IOException e) {
-                LOG.error("failed to log", e);
+                LOG4J.error("failed to log", e);
             }
         }
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationDefault.java
index 47deaf0..acd2d76 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/config/IsisConfigurationDefault.java
@@ -70,7 +70,7 @@ public class IsisConfigurationDefault implements ConfigurationServiceInternal {
 
     public IsisConfigurationDefault(final ResourceStreamSource resourceStreamSource) {
         this.resourceStreamSource = resourceStreamSource;
-        LOG.debug("configuration initialised with stream: " + nameOf(resourceStreamSource));
+        LOG.debug("configuration initialised with stream: {}", nameOf(resourceStreamSource));
     }
 
     private String nameOf(final ResourceStreamSource resourceStreamSource) {
@@ -396,7 +396,7 @@ public class IsisConfigurationDefault implements ConfigurationServiceInternal {
         }
         String property = properties.getProperty(key, defaultValue);
         property = property != null ? property.trim() : null;
-        LOG.debug("get property: '" + key + "' =  '" + property + "'");
+        LOG.debug("get property: '{} = '{}'", key, property);
         return property;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
index 3ad72c7..725b646 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/configbuilder/IsisConfigurationBuilder.java
@@ -25,11 +25,17 @@ import java.util.List;
 import java.util.Properties;
 import java.util.Set;
 
+import com.google.common.base.Objects;
+import com.google.common.collect.Sets;
+
 import org.apache.commons.cli.BasicParser;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.isis.core.commons.config.ConfigurationConstants;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
@@ -41,11 +47,6 @@ import org.apache.isis.core.commons.resource.ResourceStreamSourceChainOfResponsi
 import org.apache.isis.core.commons.resource.ResourceStreamSourceFileSystem;
 import org.apache.isis.core.runtime.optionhandler.BootPrinter;
 import org.apache.isis.core.runtime.optionhandler.OptionHandler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Objects;
-import com.google.common.collect.Sets;
 
 /**
  * Holds a mutable set of properties representing the configuration.
@@ -224,7 +225,7 @@ public final class IsisConfigurationBuilder {
         try {
             final PropertiesReader propertiesReader =
                     loadConfigurationResource(resourceStreamSourceChain, configurationResource);
-            LOG.info("loading properties from " + configurationResource);
+            LOG.info("loading properties from {}", configurationResource);
             configuration.add(propertiesReader.getProperties(), containsPolicy);
             configurationResourcesFound.add(configurationResource);
             return;
@@ -238,7 +239,7 @@ public final class IsisConfigurationBuilder {
         }
         configurationResourcesNotFound.add(configurationResource);
         if(LOG.isDebugEnabled()) {
-            LOG.debug(String.format("'%s' not found, but not needed", configurationResource));
+            LOG.debug("'{}' not found, but not needed", configurationResource);
 
         }
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/DebugDataInputExtended.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/DebugDataInputExtended.java
index 03080ef..1d16316 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/DebugDataInputExtended.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/DebugDataInputExtended.java
@@ -36,18 +36,14 @@ public class DebugDataInputExtended extends DataInputExtendedDecorator {
     @Override
     public boolean readBoolean() throws IOException {
         final boolean b = super.readBoolean();
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("boolean: " + b);
-        }
+        LOG.debug("boolean: {}", b);
         return b;
     }
 
     @Override
     public byte readByte() throws IOException {
         final byte b = super.readByte();
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("byte: " + b);
-        }
+        LOG.debug("byte: {}", b);
         return b;
     }
 
@@ -55,7 +51,7 @@ public class DebugDataInputExtended extends DataInputExtendedDecorator {
     public byte[] readBytes() throws IOException {
         final byte[] bs = super.readBytes();
         if (LOG.isDebugEnabled()) {
-            LOG.debug("bytes: " + new String(bs));
+            LOG.debug("bytes: {}", new String(bs));
         }
         return bs;
     }
@@ -63,27 +59,21 @@ public class DebugDataInputExtended extends DataInputExtendedDecorator {
     @Override
     public int readInt() throws IOException {
         final int i = super.readInt();
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("int: " + i);
-        }
+        LOG.debug("int: {}", i);
         return i;
     }
 
     @Override
     public long readLong() throws IOException {
         final long l = super.readLong();
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("long: " + l);
-        }
+        LOG.debug("long: {}", l);
         return l;
     }
 
     @Override
     public String readUTF() throws IOException {
         final String string = super.readUTF();
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("string: " + string);
-        }
+        LOG.debug("string: {}", string);
         return string;
     }
 
@@ -91,7 +81,7 @@ public class DebugDataInputExtended extends DataInputExtendedDecorator {
     public String[] readUTFs() throws IOException {
         final String[] strings = super.readUTFs();
         if (LOG.isDebugEnabled()) {
-            LOG.debug("list: " + Arrays.toString(strings));
+            LOG.debug("list: {}", Arrays.toString(strings));
         }
         return strings;
     }
@@ -108,9 +98,7 @@ public class DebugDataInputExtended extends DataInputExtendedDecorator {
     @Override
     public <T> T[] readEncodables(final Class<T> encodableType) throws IOException {
         final T[] objects = super.readEncodables(encodableType);
-        if (LOG.isDebugEnabled()) {
-            LOG.debug(">>> objects x" + objects.length);
-        }
+        LOG.debug(">>> objects x{}", objects.length);
         return objects;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/DebugDataOutputExtended.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/DebugDataOutputExtended.java
index 4b00925..7db8773 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/DebugDataOutputExtended.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/DebugDataOutputExtended.java
@@ -34,65 +34,53 @@ public class DebugDataOutputExtended extends DataOutputExtendedDecorator {
 
     @Override
     public void writeBoolean(final boolean flag) throws IOException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("boolean: " + flag);
-        }
+        LOG.debug("boolean: {}", flag);
         super.writeBoolean(flag);
     }
 
     @Override
     public void writeBytes(final byte[] value) throws IOException {
         if (LOG.isDebugEnabled()) {
-            LOG.debug("bytes: (" + value.length + ") " + new String(value));
+            LOG.debug("bytes: ({}) {}", value.length, new String(value));
         }
         super.writeBytes(value);
     }
 
     @Override
     public void writeByte(final int value) throws IOException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("byte: " + value);
-        }
+        LOG.debug("byte: {}", value);
         super.writeByte(value);
     }
 
     @Override
     public void writeInt(final int value) throws IOException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("int: " + value);
-        }
+        LOG.debug("int: {}", value);
         super.writeInt(value);
     }
 
     @Override
     public void writeLong(final long value) throws IOException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("long: " + value);
-        }
+        LOG.debug("long: {}", value);
         super.writeLong(value);
     }
 
     @Override
     public void writeEncodable(final Object object) throws IOException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug(">>> object: (" + object + ")");
-        }
+        LOG.debug(">>> object: ({})", object);
         super.writeEncodable(object);
     }
 
     @Override
     public void writeEncodables(final Object[] objects) throws IOException {
         if (LOG.isDebugEnabled()) {
-            LOG.debug(">>> objects x" + objects.length);
+            LOG.debug(">>> objects x{}", objects.length);
         }
         super.writeEncodables(objects);
     }
 
     @Override
     public void writeUTF(final String str) throws IOException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("string: " + str);
-        }
+        LOG.debug("string: {}", str);
         super.writeUTF(str);
     }
 
@@ -106,7 +94,7 @@ public class DebugDataOutputExtended extends DataOutputExtendedDecorator {
                 }
                 l.append(strings[i]);
             }
-            LOG.debug("list: " + l);
+            LOG.debug("list: {}", l);
         }
         super.writeUTFs(strings);
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceAbstract.java
index 0087349..4a25256 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceAbstract.java
@@ -32,19 +32,14 @@ public abstract class ResourceStreamSourceAbstract implements ResourceStreamSour
 
     @Override
     public final InputStream readResource(final String resourcePath) {
-
         try {
             final InputStream resourceStream = doReadResource(resourcePath);
             if (resourceStream != null) {
                 return resourceStream;
             }
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("could not load resource path '" + resourcePath + "' from " + getName());
-            }
+            LOG.debug("could not load resource path '{}' from {}", resourcePath, getName());
         } catch (final IOException e) {
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("could not load resource path '" + resourcePath + "' from " + getName() + ", exception: " + e.getMessage());
-            }
+            LOG.debug("could not load resource path '{}' from {}, exception: {}", resourcePath, getName(), e.getMessage());
         }
         return null;
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceChainOfResponsibility.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceChainOfResponsibility.java
index 14cd7ee..6e3f0c2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceChainOfResponsibility.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceChainOfResponsibility.java
@@ -54,9 +54,7 @@ public class ResourceStreamSourceChainOfResponsibility extends ResourceStreamSou
                 return resourceStream;
             }
         }
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("could not load resource path '" + resourcePath + "' from " + getName());
-        }
+        LOG.debug("could not load resource path '{}' from {}", resourcePath, getName());
         return null;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceComposite.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceComposite.java
index 55cb0d6..e3e67f1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceComposite.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceComposite.java
@@ -57,9 +57,7 @@ public class ResourceStreamSourceComposite extends ResourceStreamSourceAbstract
         if (!compositionStreams.isEmpty()) {
             return new SequenceInputStream(compositionStreams.elements());
         }
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("could not load resource path '" + resourcePath + "' from " + getName());
-        }
+        LOG.debug("could not load resource path '{}' from {}", resourcePath, getName());
         return null;
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjector.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjector.java
index a940154..7235b6c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjector.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/ServicesInjector.java
@@ -47,7 +47,6 @@ import org.apache.isis.core.commons.components.ApplicationScopedComponent;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.commons.util.ToString;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.exceptions.MetaModelException;
 import org.apache.isis.core.metamodel.services.configinternal.ConfigurationServiceInternal;
@@ -410,7 +409,7 @@ public class ServicesInjector implements ApplicationScopedComponent {
             throw new MetaModelException(String.format("Cannot access the %s field in %s", field.getName(), target.getClass().getName()));
         }
         if (LOG.isDebugEnabled()) {
-            LOG.debug("injected " + parameter + " into " + new ToString(target));
+            LOG.debug("injected {} into {}", parameter, new ToString(target));
         }
     }
 
@@ -418,7 +417,7 @@ public class ServicesInjector implements ApplicationScopedComponent {
         final Object[] parameters = new Object[] { parameter };
         invokeMethod(method, target, parameters);
         if (LOG.isDebugEnabled()) {
-            LOG.debug("injected " + parameter + " into " + new ToString(target));
+            LOG.debug("injected {} into {}", parameter, new ToString(target));
         }
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index 450fc61..59b90f6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -168,14 +168,14 @@ public abstract class GridSystemServiceAbstract<G extends org.apache.isis.applib
         if (valid) {
             overwriteFacets(grid, domainClass);
             if(LOG.isDebugEnabled()) {
-                LOG.debug("Grid:\n\n" + jaxbService.toXml(grid) + "\n\n");
+                LOG.debug("Grid:\n\n{}\n\n", jaxbService.toXml(grid));
             }
         } else {
 
             if(!deploymentCategoryProvider.getDeploymentCategory().isProduction()) {
                 messageService.warnUser("Grid metadata errors for " + grid.getDomainClass().getName() + "; check the error log");
             }
-            LOG.error("Grid metadata errors:\n\n" + jaxbService.toXml(grid) + "\n\n");
+            LOG.error("Grid metadata errors:\n\n{}\n\n", jaxbService.toXml(grid));
         }
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ServiceInitializer.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ServiceInitializer.java
index b1f1d42..bc40691 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ServiceInitializer.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ServiceInitializer.java
@@ -50,7 +50,7 @@ public class ServiceInitializer {
     public void validate() {
         
         for (final Object service : services) {
-            LOG.debug("checking for @PostConstruct and @PostDestroy methods on " + service.getClass().getName());
+            LOG.debug("checking for @PostConstruct and @PostDestroy methods on {}", service.getClass().getName());
             final Method[] methods = service.getClass().getMethods();
 
             // @PostConstruct
@@ -159,7 +159,7 @@ public class ServiceInitializer {
             final Method method = entry.getValue();
 
             if(LOG.isDebugEnabled()) {
-                LOG.debug("... calling @PreDestroy method: " + service.getClass().getName() + ": " + method.getName());
+                LOG.debug("... calling @PreDestroy method: {}: {}", service.getClass().getName(), method.getName());
             }
             
             try {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
index c397341..07b06bb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
@@ -119,7 +119,7 @@ public class SpecificationLoader implements ApplicationScopedComponent {
     @Override
     protected void finalize() throws Throwable {
         super.finalize();
-        LOG.info("finalizing reflector factory " + this);
+        LOG.info("finalizing reflector factory", this);
     }
 
 
@@ -203,7 +203,7 @@ public class SpecificationLoader implements ApplicationScopedComponent {
 
     @Programmatic
     public void shutdown() {
-        LOG.info("shutting down " + this);
+        LOG.info("shutting down {}", this);
 
         initialized = false;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index 9665ef4..4f291a8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -156,7 +156,7 @@ public class FacetedMethodsBuilder {
             final ObjectSpecificationAbstract spec,
             final FacetedMethodsBuilderContext facetedMethodsBuilderContext) {
         if (LOG.isDebugEnabled()) {
-            LOG.debug("creating JavaIntrospector for " + spec.getFullIdentifier());
+            LOG.debug("creating JavaIntrospector for {}", spec.getFullIdentifier());
         }
 
         this.spec = spec;
@@ -186,7 +186,7 @@ public class FacetedMethodsBuilder {
     protected void finalize() throws Throwable {
         super.finalize();
         if (LOG.isDebugEnabled()) {
-            LOG.debug("finalizing inspector " + this);
+            LOG.debug("finalizing inspector {}", this);
         }
     }
 
@@ -205,7 +205,7 @@ public class FacetedMethodsBuilder {
 
     public Properties introspectClass() {
         if (LOG.isInfoEnabled()) {
-            LOG.info("introspecting " + getClassName() + ": class-level details");
+            LOG.info("introspecting {}: class-level details", getClassName());
         }
 
         // process facets at object level
@@ -313,7 +313,7 @@ public class FacetedMethodsBuilder {
 
     private List<FacetedMethod> createAssociationFacetedMethods(Properties properties) {
         if (LOG.isDebugEnabled()) {
-            LOG.debug("introspecting " + getClassName() + ": properties and collections");
+            LOG.debug("introspecting {}: properties and collections", getClassName());
         }
         final Set<Method> associationCandidateMethods = getFacetProcessor().findAssociationCandidateAccessors(methods, new HashSet<Method>());
 
@@ -357,7 +357,7 @@ public class FacetedMethodsBuilder {
     private void createCollectionFacetedMethodsFromAccessors(final List<Method> accessorMethods, final List<FacetedMethod> facetMethodsToAppendto, Properties properties) {
         for (final Method accessorMethod : accessorMethods) {
             if (LOG.isDebugEnabled()) {
-                LOG.debug("  identified accessor method representing collection: " + accessorMethod);
+                LOG.debug("  identified accessor method representing collection: {}", accessorMethod);
             }
 
             // create property and add facets
@@ -384,7 +384,7 @@ public class FacetedMethodsBuilder {
     private void createPropertyFacetedMethodsFromAccessors(final List<Method> accessorMethods, final List<FacetedMethod> facetedMethodsToAppendto, Properties properties) throws MetaModelException {
 
         for (final Method accessorMethod : accessorMethods) {
-            LOG.debug("  identified accessor method representing property: " + accessorMethod);
+            LOG.debug("  identified accessor method representing property: {}", accessorMethod);
 
             final Class<?> returnType = accessorMethod.getReturnType();
 
@@ -435,7 +435,7 @@ public class FacetedMethodsBuilder {
             final MethodScope methodScope, 
             final Properties metadataProperties) {
         if (LOG.isDebugEnabled()) {
-            LOG.debug("introspecting " + getClassName() + ": actions");
+            LOG.debug("introspecting {}: actions", getClassName());
         }
         final List<FacetedMethod> actionFacetedMethods1 = findActionFacetedMethods(methodScope, RecognisedHelpersStrategy.SKIP, metadataProperties);
         final List<FacetedMethod> actionFacetedMethods2 = findActionFacetedMethods(methodScope, RecognisedHelpersStrategy.DONT_SKIP, metadataProperties);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index a32eb65..9bf2e7d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -285,7 +285,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
         superclassSpec = getSpecificationLoader().loadSpecification(superclass);
         if (superclassSpec != null) {
             if (LOG.isDebugEnabled()) {
-                LOG.debug("  Superclass " + superclass.getName());
+                LOG.debug("  Superclass {}", superclass.getName());
             }
             updateAsSubclassTo(superclassSpec);
         }
@@ -711,7 +711,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
             // automatically refresh if not in production
             // (better support for jrebel)
             
-            LOG.warn("Could not find association with id '" + id + "'; invalidating cache automatically");
+            LOG.warn("Could not find association with id '{}'; invalidating cache automatically", id);
             if(!invalidatingCache.get()) {
                 // make sure don't go into an infinite loop, though.
                 try {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index 09a91bd..5f1e2e4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -123,7 +123,7 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
         // go no further if a value
         if(this.containsFacet(ValueFacet.class)) {
             if (LOG.isDebugEnabled()) {
-                LOG.debug("skipping full introspection for value type " + getFullIdentifier());
+                LOG.debug("skipping full introspection for value type {}", getFullIdentifier());
             }
             return;
         }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
index 5a1d5b0..d04a061 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshot.java
@@ -53,7 +53,6 @@ import org.apache.isis.applib.services.xmlsnapshot.XmlSnapshotService.Snapshot;
 import org.apache.isis.applib.snapshot.SnapshottableWithInclusions;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
@@ -135,7 +134,7 @@ public class XmlSnapshot implements Snapshot {
     public XmlSnapshot(final ObjectAdapter rootAdapter, final XmlSchema schema) {
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug(".ctor(" + log("rootObj", rootAdapter) + andlog("schema", schema) + andlog("addOids", "" + true) + ")");
+            LOG.debug(".ctor({}{}{})", log("rootObj", rootAdapter), andlog("schema", schema), andlog("addOids", "" + true));
         }
 
         this.isisMetaModel = new IsisSchema();
@@ -198,7 +197,7 @@ public class XmlSnapshot implements Snapshot {
     private Place appendXml(final ObjectAdapter object) {
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("appendXml(" + log("obj", object) + "')");
+            LOG.debug("appendXml({})", log("obj", object));
         }
 
         final String fullyQualifiedClassName = object.getSpecification().getFullIdentifier();
@@ -264,7 +263,7 @@ public class XmlSnapshot implements Snapshot {
     private Element appendXml(final Place parentPlace, final ObjectAdapter childObject) {
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("appendXml(" + log("parentPlace", parentPlace) + andlog("childObj", childObject) + ")");
+            LOG.debug("appendXml({}{})", log("parentPlace", parentPlace), andlog("childObj", childObject));
         }
 
         final Element parentElement = parentPlace.getXmlElement();
@@ -275,7 +274,7 @@ public class XmlSnapshot implements Snapshot {
         }
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("appendXml(Pl, NO): invoking objectToElement() for " + log("childObj", childObject));
+            LOG.debug("appendXml(Pl, NO): invoking objectToElement() for {}", log("childObj", childObject));
         }
         final Place childPlace = objectToElement(childObject);
         Element childElement = childPlace.getXmlElement();
@@ -297,7 +296,7 @@ public class XmlSnapshot implements Snapshot {
     private boolean appendXmlThenIncludeRemaining(final Place parentPlace, final ObjectAdapter referencedObject, final Vector fieldNames, final String annotation) {
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("appendXmlThenIncludeRemaining(: " + log("parentPlace", parentPlace) + andlog("referencedObj", referencedObject) + andlog("fieldNames", fieldNames) + andlog("annotation", annotation) + ")");
+            LOG.debug("appendXmlThenIncludeRemaining(: {}{}{}{})", log("parentPlace", parentPlace), andlog("referencedObj", referencedObject), andlog("fieldNames", fieldNames), andlog("annotation", annotation));
             LOG.debug("appendXmlThenIncludeRemaining(..): invoking appendXml(parentPlace, referencedObject)");
         }
 
@@ -307,7 +306,7 @@ public class XmlSnapshot implements Snapshot {
         final boolean includedField = includeField(referencedPlace, fieldNames, annotation);
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("appendXmlThenIncludeRemaining(..): invoked includeField(referencedPlace, fieldNames)" + andlog("returned", "" + includedField));
+            LOG.debug("appendXmlThenIncludeRemaining(..): invoked includeField(referencedPlace, fieldNames){}", andlog("returned", "" + includedField));
         }
 
         return includedField;
@@ -385,13 +384,13 @@ public class XmlSnapshot implements Snapshot {
             final String token = tok.nextToken();
 
             if (LOG.isDebugEnabled()) {
-                LOG.debug("include(..): " + log("token", token));
+                LOG.debug("include(..): {}", log("token", token));
             }
             fieldNames.addElement(token);
         }
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("include(..): " + log("fieldNames", fieldNames));
+            LOG.debug("include(..): {}", log("fieldNames", fieldNames));
         }
 
         // navigate first field, from the root.
@@ -409,7 +408,7 @@ public class XmlSnapshot implements Snapshot {
     private boolean includeField(final Place place, final Vector fieldNames, final String annotation) {
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("includeField(: " + log("place", place) + andlog("fieldNames", fieldNames) + andlog("annotation", annotation) + ")");
+            LOG.debug("includeField(: {}{}{})", log("place", place), andlog("fieldNames", fieldNames),andlog("annotation", annotation));
         }
 
         final ObjectAdapter object = place.getObject();
@@ -433,7 +432,7 @@ public class XmlSnapshot implements Snapshot {
         names.removeElementAt(0);
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("includeField(Pl, Vec, Str):" + log("processing field", fieldName) + andlog("left", "" + names.size()));
+            LOG.debug("includeField(Pl, Vec, Str):{}{}", log("processing field", fieldName), andlog("left", "" + names.size()));
         }
 
         // locate the field in the object's class
@@ -459,7 +458,10 @@ public class XmlSnapshot implements Snapshot {
         final Vector xmlFieldElements = elementsUnder(xmlElement, field.getId());
         if (xmlFieldElements.size() != 1) {
             if (LOG.isInfoEnabled()) {
-                LOG.info("includeField(Pl, Vec, Str): could not locate " + log("field", field.getId()) + andlog("xmlFieldElements.size", "" + xmlFieldElements.size()));
+                LOG.info(
+                        "includeField(Pl, Vec, Str): could not locate {}",
+                        log("field", field.getId()) +
+                        andlog("xmlFieldElements.size", "" + xmlFieldElements.size()));
             }
             return false;
         }
@@ -494,7 +496,7 @@ public class XmlSnapshot implements Snapshot {
 
             final boolean appendedXml = appendXmlThenIncludeRemaining(fieldPlace, referencedObject, names, annotation);
             if (LOG.isDebugEnabled()) {
-                LOG.debug("includeField(Pl, Vec, Str): 1->1: invoked appendXmlThenIncludeRemaining for " + log("referencedObj", referencedObject) + andlog("returned", "" + appendedXml));
+                LOG.debug("includeField(Pl, Vec, Str): 1->1: invoked appendXmlThenIncludeRemaining for {}{}", log("referencedObj", referencedObject), andlog("returned", "" + appendedXml));
             }
 
             return appendedXml;
@@ -509,17 +511,17 @@ public class XmlSnapshot implements Snapshot {
             final CollectionFacet facet = collection.getSpecification().getFacet(CollectionFacet.class);
 
             if (LOG.isDebugEnabled()) {
-                LOG.debug("includeField(Pl, Vec, Str): 1->M: " + log("collection.size", "" + facet.size(collection)));
+                LOG.debug("includeField(Pl, Vec, Str): 1->M: {}", log("collection.size", "" + facet.size(collection)));
             }
             boolean allFieldsNavigated = true;
             for (final ObjectAdapter referencedObject : facet.iterable(collection)) {
                 final boolean appendedXml = appendXmlThenIncludeRemaining(fieldPlace, referencedObject, names, annotation);
                 if (LOG.isDebugEnabled()) {
-                    LOG.debug("includeField(Pl, Vec, Str): 1->M: + invoked appendXmlThenIncludeRemaining for " + log("referencedObj", referencedObject) + andlog("returned", "" + appendedXml));
+                    LOG.debug("includeField(Pl, Vec, Str): 1->M: + invoked appendXmlThenIncludeRemaining for {}{}",log("referencedObj", referencedObject), andlog("returned", "" + appendedXml));
                 }
                 allFieldsNavigated = allFieldsNavigated && appendedXml;
             }
-            LOG.debug("includeField(Pl, Vec, Str): " + log("returning", "" + allFieldsNavigated));
+            LOG.debug("includeField(Pl, Vec, Str): {}", log("returning", "" + allFieldsNavigated));
             return allFieldsNavigated;
         }
 
@@ -550,13 +552,13 @@ public class XmlSnapshot implements Snapshot {
     private Element mergeTree(final Element parentElement, final Element childElement) {
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("mergeTree(" + log("parent", parentElement) + andlog("child", childElement));
+            LOG.debug("mergeTree({}{})", log("parent", parentElement), andlog("child", childElement));
         }
 
         final String childElementOid = isisMetaModel.getAttribute(childElement, "oid");
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("mergeTree(El,El): " + log("childOid", childElementOid));
+            LOG.debug("mergeTree(El,El): {}", log("childOid", childElementOid));
         }
         if (childElementOid != null) {
 
@@ -588,7 +590,7 @@ public class XmlSnapshot implements Snapshot {
                     childElement.removeChild(grandchildElement);
 
                     if (LOG.isDebugEnabled()) {
-                        LOG.debug("mergeTree(El,El): merging " + log("grandchild", grandchildElement));
+                        LOG.debug("mergeTree(El,El): merging {}", log("grandchild", grandchildElement));
                     }
 
                     mergeTree(existingChildElement, grandchildElement);
@@ -604,7 +606,7 @@ public class XmlSnapshot implements Snapshot {
     Place objectToElement(final ObjectAdapter adapter) {
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("objectToElement(" + log("object", adapter) + ")");
+            LOG.debug("objectToElement({})", log("object", adapter));
         }
 
         final ObjectSpecification nos = adapter.getSpecification();
@@ -637,7 +639,7 @@ public class XmlSnapshot implements Snapshot {
             final String fieldName = field.getId();
 
             if (LOG.isDebugEnabled()) {
-                LOG.debug("objectToElement(NO): " + log("field", fieldName));
+                LOG.debug("objectToElement(NO): {}", log("field", fieldName));
             }
 
             // Skip field if we have seen the name already
@@ -654,7 +656,7 @@ public class XmlSnapshot implements Snapshot {
             // same name, ultimately breaking the XSD.
             for (int j = 0; j < i; j++) {
                 if (fieldName.equals(fields.get(i).getName())) {
-                    LOG.debug("objectToElement(NO): " + log("field", fieldName) + " SKIPPED");
+                    LOG.debug("objectToElement(NO): {} SKIPPED", log("field", fieldName));
                     continue eachField;
                 }
             }
@@ -670,7 +672,7 @@ public class XmlSnapshot implements Snapshot {
 
             if (field.getSpecification().containsFacet(ValueFacet.class)) {
                 if (LOG.isDebugEnabled()) {
-                    LOG.debug("objectToElement(NO): " + log("field", fieldName) + " is value");
+                    LOG.debug("objectToElement(NO): {} is value", log("field", fieldName));
                 }
 
                 final ObjectSpecification fieldNos = field.getSpecification();
@@ -717,7 +719,7 @@ public class XmlSnapshot implements Snapshot {
                     }
 
                 } catch (final Exception ex) {
-                    LOG.warn("objectToElement(NO): " + log("field", fieldName) + ": getField() threw exception - skipping XML generation");
+                    LOG.warn("objectToElement(NO): {}: getField() threw exception - skipping XML generation", log("field", fieldName));
                 }
 
                 // XSD
@@ -726,7 +728,7 @@ public class XmlSnapshot implements Snapshot {
             } else if (field instanceof OneToOneAssociation) {
 
                 if (LOG.isDebugEnabled()) {
-                    LOG.debug("objectToElement(NO): " + log("field", fieldName) + " is OneToOneAssociation");
+                    LOG.debug("objectToElement(NO): {} is OneToOneAssociation", log("field", fieldName));
                 }
 
                 final OneToOneAssociation oneToOneAssociation = ((OneToOneAssociation) field);
@@ -752,7 +754,7 @@ public class XmlSnapshot implements Snapshot {
                     }
 
                 } catch (final Exception ex) {
-                    LOG.warn("objectToElement(NO): " + log("field", fieldName) + ": getAssociation() threw exception - skipping XML generation");
+                    LOG.warn("objectToElement(NO): {}: getAssociation() threw exception - skipping XML generation", log("field", fieldName));
                 }
 
                 // XSD
@@ -761,7 +763,7 @@ public class XmlSnapshot implements Snapshot {
             } else if (field instanceof OneToManyAssociation) {
 
                 if (LOG.isDebugEnabled()) {
-                    LOG.debug("objectToElement(NO): " + log("field", fieldName) + " is OneToManyAssociation");
+                    LOG.debug("objectToElement(NO): {} is OneToManyAssociation", log("field", fieldName));
                 }
 
                 final OneToManyAssociation oneToManyAssociation = (OneToManyAssociation) field;
@@ -780,7 +782,7 @@ public class XmlSnapshot implements Snapshot {
                     // XML
                     isisMetaModel.setIsisCollection(xmlCollectionElement, schema.getPrefix(), fullyQualifiedClassName, collection);
                 } catch (final Exception ex) {
-                    LOG.warn("objectToElement(NO): " + log("field", fieldName) + ": get(obj) threw exception - skipping XML generation");
+                    LOG.warn("objectToElement(NO): {}: get(obj) threw exception - skipping XML generation", log("field", fieldName));
                 }
 
                 // XSD
@@ -788,7 +790,7 @@ public class XmlSnapshot implements Snapshot {
 
             } else {
                 if (LOG.isInfoEnabled()) {
-                    LOG.info("objectToElement(NO): " + log("field", fieldName) + " is unknown type; ignored");
+                    LOG.info("objectToElement(NO): {} is unknown type; ignored", log("field", fieldName));
                 }
                 continue;
             }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/webapp/content/ResourceServlet.java b/core/metamodel/src/main/java/org/apache/isis/core/webapp/content/ResourceServlet.java
index c719938..a5ef21c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/webapp/content/ResourceServlet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/webapp/content/ResourceServlet.java
@@ -53,16 +53,12 @@ public class ResourceServlet extends HttpServlet {
 
     private void processRequest(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
         final String servletPath = StringExtensions.stripLeadingSlash(request.getServletPath());
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("request: " + servletPath);
-        }
+        LOG.debug("request: {}", servletPath);
 
         // try to load from filesystem
         final InputStream is2 = getRealPath(request);
         if (is2 != null) {
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("request: " + servletPath + " loaded from filesystem");
-            }
+            LOG.debug("request: {} loaded from filesystem", servletPath);
             writeContentType(request, response);
             InputStreamExtensions.copyTo(is2, response.getOutputStream());
             is2.close();
@@ -72,16 +68,14 @@ public class ResourceServlet extends HttpServlet {
         // otherwise, try to load from classpath
         final InputStream is = ResourceUtil.getResourceAsStream(servletPath);
         if (is != null) {
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("request: " + servletPath + " loaded from classpath");
-            }
+            LOG.debug("request: {} loaded from classpath", servletPath );
             writeContentType(request, response);
             InputStreamExtensions.copyTo(is, response.getOutputStream());
             is.close();
             return;
         }
 
-        LOG.warn("failed to load resource from classpath or file system: " + servletPath);
+        LOG.warn("failed to load resource from classpath or file system: {}", servletPath);
     }
 
     private static void writeContentType(final HttpServletRequest request, final HttpServletResponse response) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/webapp/diagnostics/IsisLogOnExceptionFilter.java b/core/metamodel/src/main/java/org/apache/isis/core/webapp/diagnostics/IsisLogOnExceptionFilter.java
index 583c491..3d8feb2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/webapp/diagnostics/IsisLogOnExceptionFilter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/webapp/diagnostics/IsisLogOnExceptionFilter.java
@@ -73,6 +73,6 @@ public class IsisLogOnExceptionFilter implements Filter {
             buf.append('?').append(queryString);
         }
         
-        LOG.error("Request caused " + e.getClass().getName() + ": " + buf.toString(), e);
+        LOG.error("Request caused {}: {}", e.getClass().getName(), buf.toString(), e);
     }
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/webapp/routing/RedirectToDocsFilter.java b/core/metamodel/src/main/java/org/apache/isis/core/webapp/routing/RedirectToDocsFilter.java
index b27a374..180e8b8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/webapp/routing/RedirectToDocsFilter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/webapp/routing/RedirectToDocsFilter.java
@@ -65,8 +65,7 @@ public class RedirectToDocsFilter implements Filter {
         if (redirectTo == null) {
             redirectTo = REDIRECT_TO_DEFAULT;
         }
-        System.out.println("redirectToDocsFilter: redirectTo=" + redirectTo);
-        LOG.info("redirectToDocsFilter: redirectTo=" + redirectTo);
+        LOG.info("redirectToDocsFilter: redirectTo={}", redirectTo);
     }
 
     @Override
@@ -80,8 +79,7 @@ public class RedirectToDocsFilter implements Filter {
 
         // do nothing if not requesting "/"
         final String servletPath = httpServletRequest.getServletPath();
-        System.out.println("redirectToDocsFilter: servletPath: " + servletPath);
-        LOG.info("redirectToDocsFilter: servletPath: " + servletPath);
+        LOG.info("redirectToDocsFilter: servletPath: {}", servletPath);
 
         if (!"/".equals(servletPath)) {
             chain.doFilter(request, response);
@@ -97,8 +95,7 @@ public class RedirectToDocsFilter implements Filter {
 
         // otherwise redirect
         final String redirect = combine(httpServletRequest.getContextPath(), redirectTo);
-        System.out.println("redirectToDocsFilter: redirecting to: " + redirect);
-        LOG.info("redirectToDocsFilter: redirecting to: " + redirect);
+        LOG.info("redirectToDocsFilter: redirecting to: {}", redirect);
 
         httpServletResponse.sendRedirect(redirect);
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureFilePersistor.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureFilePersistor.java
index 8c5780a..47f9ce1 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureFilePersistor.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureFilePersistor.java
@@ -30,8 +30,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.inject.Inject;
-
 import com.google.common.collect.Maps;
 
 import org.slf4j.Logger;
@@ -124,7 +122,7 @@ public class ObjectFixtureFilePersistor {
                 }
             }
         } catch (final ObjectSpecificationException e) {
-            LOG.info("no field for '" + name + "', skipping entry: " + data);
+            LOG.info("no field for '{}', skipping entry: {}", name, data);
         }
     }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureService.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureService.java
index 4e8b7a6a..e68416a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureService.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureService.java
@@ -28,7 +28,6 @@ import java.util.List;
 import java.util.Set;
 
 import javax.annotation.PostConstruct;
-import javax.inject.Inject;
 
 import com.google.common.collect.Sets;
 
@@ -98,7 +97,7 @@ public class ObjectFixtureService {
     public void save(final Object object) {
         final ObjectAdapter adapter = getPersistenceSession().adapterFor(object);
         if (adapter.getSpecification().persistability() != Persistability.TRANSIENT) {
-            LOG.info("Saving object for fixture: " + adapter);
+            LOG.info("Saving object for fixture: {}", adapter);
             addObjectAndAssociates(adapter);
             saveAll();
         }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
index 8ef8aba..b0b1b08 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
@@ -125,14 +125,14 @@ public class FixturesInstallerDelegate {
 
         // now, install the fixture itself
         try {
-            LOG.info("installing fixture: " + fixture);
+            LOG.info("installing fixture: {}", fixture);
             getTransactionManager().startTransaction();
             installFixture(fixture);
             saveLogonFixtureIfRequired(fixture);
             getTransactionManager().endTransaction();
             LOG.info("fixture installed");
         } catch (final RuntimeException e) {
-            LOG.error("installing fixture " + fixture.getClass().getName() + " failed; aborting ", e);
+            LOG.error("installing fixture {} failed; aborting ", fixture.getClass().getName() , e);
             try {
                 getTransactionManager().abortTransaction();
             } catch (final Exception e2) {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerFromConfiguration.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerFromConfiguration.java
index 285adb0..7cc6161 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerFromConfiguration.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerFromConfiguration.java
@@ -55,7 +55,7 @@ public class FixturesInstallerFromConfiguration extends FixturesInstallerAbstrac
             boolean fixtureLoaded = false;
             for (final String element : fixtureConfig.getFixtures()) {
                 final String fixtureFullyQualifiedName = fixtureConfig.getFixturePrefix() + element;
-                LOG.info("  adding fixture " + fixtureFullyQualifiedName);
+                LOG.info("  adding fixture {}", fixtureFullyQualifiedName);
                 final Object fixture = InstanceUtil.createInstance(fixtureFullyQualifiedName);
                 fixtureLoaded = true;
                 delegate.addFixture(fixture);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
index a4027b4..d9d69af 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/headless/HeadlessWithBootstrappingAbstract.java
@@ -78,12 +78,12 @@ public abstract class HeadlessWithBootstrappingAbstract extends HeadlessAbstract
         }
 
         final String integTestModuleFqcn = System.getProperty("isis.integTest.module");
-        LOG.info("isis.integTest.module = " + integTestModuleFqcn);
+        LOG.info("isis.integTest.module = {}", integTestModuleFqcn);
         String moduleFqcn = integTestModuleFqcn;
 
         if(moduleFqcn == null) {
             final String headlessModuleFqcn = System.getProperty("isis.headless.module");
-            LOG.info("isis.headless.module = " + headlessModuleFqcn);
+            LOG.info("isis.headless.module = {}", headlessModuleFqcn);
             moduleFqcn = headlessModuleFqcn;
         }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
index 241c107..04a9eba 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
@@ -77,9 +77,7 @@ public class Memento implements Serializable {
 
     public Memento(final ObjectAdapter adapter) {
         data = adapter == null ? null : createData(adapter);
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("created memento for " + this);
-        }
+        LOG.debug("created memento for {}", this);
     }
 
     
@@ -118,7 +116,7 @@ public class Memento implements Serializable {
                     continue;
                 }
                 if (associations.get(i).containsFacet(PropertyOrCollectionAccessorFacet.class) && !associations.get(i).containsFacet(PropertySetterFacet.class)) {
-                    LOG.debug("ignoring not-settable field " + associations.get(i).getName());
+                    LOG.debug("ignoring not-settable field {}", associations.get(i).getName());
                     continue;
                 }
             }
@@ -227,7 +225,7 @@ public class Memento implements Serializable {
         }
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("recreated object " + adapter.getOid());
+            LOG.debug("recreated object {}", adapter.getOid());
         }
         return adapter;
     }
@@ -285,7 +283,7 @@ public class Memento implements Serializable {
         updateFieldsAndResolveState(adapter, data);
         
         if (LOG.isDebugEnabled()) {
-            LOG.debug("object updated " + adapter.getOid());
+            LOG.debug("object updated {}", adapter.getOid());
         }
     }
 
@@ -320,7 +318,7 @@ public class Memento implements Serializable {
                     continue;
                 }
                 if (field.containsFacet(PropertyOrCollectionAccessorFacet.class) && !field.containsFacet(PropertySetterFacet.class)) {
-                    LOG.debug("ignoring not-settable field " + field.getName());
+                    LOG.debug("ignoring not-settable field {}", field.getName());
                     continue;
                 }
             }
@@ -357,7 +355,7 @@ public class Memento implements Serializable {
             final ObjectAdapter elementAdapter = recreateReference(data);
             if (!facet.contains(collection, elementAdapter)) {
                 if (LOG.isDebugEnabled()) {
-                    LOG.debug("  association " + otma + " changed, added " + elementAdapter.getOid());
+                    LOG.debug("  association {} changed, added {}", otma, elementAdapter.getOid());
                 }
                 otma.addElement(objectAdapter, elementAdapter, InteractionInitiatedBy.FRAMEWORK);
             } else {
@@ -367,7 +365,7 @@ public class Memento implements Serializable {
 
         for (final ObjectAdapter element : original) {
             if (LOG.isDebugEnabled()) {
-                LOG.debug("  association " + otma + " changed, removed " + element.getOid());
+                LOG.debug("  association {} changed, removed {}", otma, element.getOid());
             }
             otma.removeElement(objectAdapter, element, InteractionInitiatedBy.FRAMEWORK);
         }
@@ -380,7 +378,7 @@ public class Memento implements Serializable {
             final ObjectAdapter ref = recreateReference(assocData);
             if (otoa.get(objectAdapter, InteractionInitiatedBy.FRAMEWORK) != ref) {
                 if (LOG.isDebugEnabled()) {
-                    LOG.debug("  association " + otoa + " changed to " + ref.getOid());
+                    LOG.debug("  association {} changed to {}", otoa, ref.getOid());
                 }
                 otoa.initAssociation(objectAdapter, ref);
             }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
index d8211cb..56db2a3 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
@@ -247,11 +247,11 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
            thisVersion.different(otherVersion)) {
             
             if(AdapterManager.ConcurrencyChecking.isCurrentlyEnabled()) {
-                LOG.info("concurrency conflict detected on " + thisOid + " (" + otherVersion + ")");
+                LOG.info("concurrency conflict detected on {} ({})", thisOid, otherVersion);
                 final String currentUser = authenticationSession.getUserName();
                 throw new ConcurrencyException(currentUser, thisOid, thisVersion, otherVersion);
             } else {
-                LOG.info("concurrency conflict detected but suppressed, on " + thisOid + " (" + otherVersion + ")");
+                LOG.info("concurrency conflict detected but suppressed, on {} ({})", thisOid, otherVersion );
             }
         }
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerAppManifest.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerAppManifest.java
index 03ad1ba..ac13c14 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerAppManifest.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerAppManifest.java
@@ -70,7 +70,7 @@ public class OptionHandlerAppManifest extends OptionHandlerAbstract {
     }
 
     static void prime(IsisConfigurationBuilder isisConfigurationBuilder, String key, String value) {
-        LOG.info("priming: " + key + "=" + value);
+        LOG.info("priming: {}={}", key, value);
         isisConfigurationBuilder.add(key, value);
     }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureAbstract.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureAbstract.java
index 1fa1b6b..426e23c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerFixtureAbstract.java
@@ -45,7 +45,7 @@ public abstract class OptionHandlerFixtureAbstract extends OptionHandlerAbstract
     }
 
     static void prime(IsisConfigurationBuilder isisConfigurationBuilder, String key, String value) {
-        LOG.info("priming: " + key + "=" + value);
+        LOG.info("priming: {}={}", key, value);
         isisConfigurationBuilder.add(key, value);
     }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerInitParameters.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerInitParameters.java
index 8f0c031..dee668a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerInitParameters.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerInitParameters.java
@@ -57,7 +57,7 @@ public class OptionHandlerInitParameters extends OptionHandlerAbstract {
     @Override
     public void prime(final IsisConfigurationBuilder isisConfigurationBuilder) {
         Map<String,String> additionalProperties = asMap(servletContext);
-        LOG.info("priming configuration builder: " + additionalProperties.size() + " properties to prime");
+        LOG.info("priming configuration builder: {} properties to prime", additionalProperties.size());
         addConfigurationProperties(isisConfigurationBuilder, additionalProperties);
     }
 
@@ -78,7 +78,7 @@ public class OptionHandlerInitParameters extends OptionHandlerAbstract {
         for (final String propertyKey : additionalProperties.keySet()) {
             final String propertyValue = additionalProperties.get(propertyKey);
 
-            LOG.info("priming: " + propertyKey + "=" + propertyValue);
+            LOG.info("priming: {}={}", propertyKey, propertyValue);
             isisConfigurationBuilder.add(propertyKey, propertyValue);
         }
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerSystemProperties.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerSystemProperties.java
index 7478d2f..a4adb43 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerSystemProperties.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionHandlerSystemProperties.java
@@ -61,7 +61,7 @@ public class OptionHandlerSystemProperties extends OptionHandlerAbstract {
 
     @Override
     public void prime(final IsisConfigurationBuilder isisConfigurationBuilder) {
-        LOG.debug("priming configuration builder: " + additionalProperties.size() + " properties to prime");
+        LOG.debug("priming configuration builder: {} properties to prime", additionalProperties.size());
         addConfigurationProperties(isisConfigurationBuilder, additionalProperties);
     }
 
@@ -69,7 +69,7 @@ public class OptionHandlerSystemProperties extends OptionHandlerAbstract {
         for (final String propertyKey : additionalProperties.keySet()) {
             final String propertyValue = additionalProperties.get(propertyKey);
 
-            LOG.info("priming: " + propertyKey + "=" + propertyValue);
+            LOG.info("priming: {}={}", propertyKey, propertyValue);
             isisConfigurationBuilder.add(propertyKey, propertyValue);
         }
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
index 3303118..2b6591b 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
@@ -109,7 +109,7 @@ public final class ServiceInstantiator {
 
     private Class<?> loadClass(final String className) {
         try {
-            LOG.debug("loading class for service: " + className);
+            LOG.debug("loading class for service: {}", className);
             //return Thread.currentThread().getContextClassLoader().loadClass(className);
             return Class.forName(className);
         } catch (final ClassNotFoundException ex) {
@@ -242,7 +242,7 @@ public final class ServiceInstantiator {
         final int numParams = postConstructMethod.getParameterTypes().length;
 
         if(LOG.isDebugEnabled()) {
-            LOG.debug("... calling @PostConstruct method: " + serviceClass.getName() + ": " + postConstructMethod.getName());
+            LOG.debug("... calling @PostConstruct method: {}: {}", serviceClass.getName(), postConstructMethod.getName());
         }
         // unlike shutdown, we don't swallow exceptions; would rather fail early
         if(numParams == 0) {
@@ -261,7 +261,7 @@ public final class ServiceInstantiator {
         }
 
         if(LOG.isDebugEnabled()) {
-            LOG.debug("... calling @PreDestroy method: " + serviceClass.getName() + ": " + preDestroyMethod.getName());
+            LOG.debug("... calling @PreDestroy method: {}: {}", serviceClass.getName(), preDestroyMethod.getName());
         }
         try {
             MethodExtensions.invoke(preDestroyMethod, service);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfiguration.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfiguration.java
index 5fb1b17..09895e3 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfiguration.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfiguration.java
@@ -111,7 +111,7 @@ public class ServicesInstallerFromConfiguration extends ServicesInstallerAbstrac
 
     @Override
     public List<Object> getServices() {
-        LOG.info("installing " + this.getClass().getName());
+        LOG.info("installing {}", this.getClass().getName());
 
         // rather nasty, lazily copy over the configuration to the instantiator
         serviceInstantiator.setConfiguration(getConfiguration());
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfigurationAndAnnotation.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfigurationAndAnnotation.java
index 1a63838..0a4aac1 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfigurationAndAnnotation.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServicesInstallerFromConfigurationAndAnnotation.java
@@ -74,7 +74,7 @@ public class ServicesInstallerFromConfigurationAndAnnotation extends ServicesIns
 
     @Override
     public List<Object> getServices() {
-        LOG.info("installing " + this.getClass().getName());
+        LOG.info("installing {}", this.getClass().getName());
 
         if(serviceList == null) {
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
index 92392c2..0aea26c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
@@ -173,7 +173,7 @@ public class MenuBarsServiceBS3 implements MenuBarsService {
         if(!deploymentCategoryProvider.getDeploymentCategory().isProduction()) {
             messageService.warnUser("Menubars metadata errors; check the error log");
         }
-        LOG.error("Menubar layout metadata errors:\n\n" + jaxbService.toXml(menuBars) + "\n\n");
+        LOG.error("Menubar layout metadata errors:\n\n{}\n\n", jaxbService.toXml(menuBars));
 
         return null;
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/internal/IsisLocaleInitializer.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/internal/IsisLocaleInitializer.java
index a141a7a..067860f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/internal/IsisLocaleInitializer.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/internal/IsisLocaleInitializer.java
@@ -44,9 +44,9 @@ public class IsisLocaleInitializer {
                 locale = new Locale(language, country);
             }
             Locale.setDefault(locale);
-            LOG.info("locale set to " + locale);
+            LOG.info("locale set to {}", locale);
         }
-        LOG.debug("locale is " + Locale.getDefault());
+        LOG.debug("locale is {}", Locale.getDefault());
     }
 
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/internal/IsisTimeZoneInitializer.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/internal/IsisTimeZoneInitializer.java
index 50944be..34f07d8 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/internal/IsisTimeZoneInitializer.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/internal/IsisTimeZoneInitializer.java
@@ -37,9 +37,9 @@ public class IsisTimeZoneInitializer {
             TimeZone timeZone;
             timeZone = TimeZone.getTimeZone(timeZoneSpec);
             TimeZone.setDefault(timeZone);
-            LOG.info("time zone set to " + timeZone);
+            LOG.info("time zone set to {}", timeZone);
         }
-        LOG.debug("time zone is " + TimeZone.getDefault());
+        LOG.debug("time zone is {}", TimeZone.getDefault());
     }
 
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceQueryFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceQueryFactory.java
index f8aa3b3..1eee7e2 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceQueryFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceQueryFactory.java
@@ -54,7 +54,7 @@ public class PersistenceQueryFactory {
      */
     final PersistenceQuery createPersistenceQueryFor(final Query<?> query, final QueryCardinality cardinality) {
         if (LOG.isDebugEnabled()) {
-            LOG.debug("createPersistenceQueryFor: " + query.getDescription());
+            LOG.debug("createPersistenceQueryFor: {}", query.getDescription());
         }
         final ObjectSpecification noSpec = specFor(query);
         if (query instanceof QueryFindAllInstances) {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index 67d83b4..1ced524 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -233,7 +233,7 @@ public class PersistenceSession implements
             final FixturesInstalledFlag fixturesInstalledFlag) {
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("creating " + this);
+            LOG.debug("creating {}", this);
         }
 
         this.servicesInjector = servicesInjector;
@@ -295,7 +295,7 @@ public class PersistenceSession implements
         ensureNotOpened();
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("opening " + this);
+            LOG.debug("opening {}", this);
         }
 
         oidAdapterMap.open();
@@ -557,13 +557,13 @@ public class PersistenceSession implements
      */
     private <T> ObjectAdapter findInstancesInTransaction(final Query<T> query, final QueryCardinality cardinality) {
         if (LOG.isDebugEnabled()) {
-            LOG.debug("findInstances using (applib) Query: " + query);
+            LOG.debug("findInstances using (applib) Query: {}", query);
         }
 
         // TODO: unify PersistenceQuery and PersistenceQueryProcessor
         final PersistenceQuery persistenceQuery = createPersistenceQueryFor(query, cardinality);
         if (LOG.isDebugEnabled()) {
-            LOG.debug("maps to (core runtime) PersistenceQuery: " + persistenceQuery);
+            LOG.debug("maps to (core runtime) PersistenceQuery: {}", persistenceQuery);
         }
 
         final PersistenceQueryProcessor<? extends PersistenceQuery> processor = lookupProcessorFor(persistenceQuery);
@@ -687,7 +687,7 @@ public class PersistenceSession implements
             final Variant variant,
             final String memento) {
         if (LOG.isDebugEnabled()) {
-            LOG.debug("creating " + variant + " instance of " + spec);
+            LOG.debug("creating {} instance of {}", variant, spec);
         }
         final Object pojo;
 
@@ -936,9 +936,7 @@ public class PersistenceSession implements
                 new TransactionalClosureWithReturn<ObjectAdapter>() {
                     @Override
                     public ObjectAdapter execute() {
-                        if (LOG.isDebugEnabled()) {
-                            LOG.debug("getObject; oid=" + oid);
-                        }
+                        LOG.debug("getObject; oid={}", oid);
 
                         final Object pojo = loadPersistentPojo(oid);
                         return mapRecreatedPojo(oid, pojo);
@@ -1079,7 +1077,7 @@ public class PersistenceSession implements
             public void execute() {
 
                 if (LOG.isDebugEnabled()) {
-                    LOG.debug("resolveImmediately; oid=" + adapter.getOid().enString());
+                    LOG.debug("resolveImmediately; oid={}", adapter.getOid().enString());
                 }
 
                 if (!adapter.representsPersistent()) {
@@ -1172,9 +1170,7 @@ public class PersistenceSession implements
         if (alreadyPersistedOrNotPersistable(adapter)) {
             return;
         }
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("persist " + adapter);
-        }
+        LOG.debug("persist {}", adapter);
 
         // previously we called the PersistingCallback here.
         // this is now done in the JDO framework synchronizer.
@@ -1233,9 +1229,7 @@ public class PersistenceSession implements
         if (spec.isParented()) {
             return;
         }
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("destroyObject " + adapter);
-        }
+        LOG.debug("destroyObject {}", adapter);
         transactionManager.executeWithinTransaction(new TransactionalClosure() {
             @Override
             public void execute() {
@@ -1271,9 +1265,7 @@ public class PersistenceSession implements
     private CreateObjectCommand newCreateObjectCommand(final ObjectAdapter adapter) {
         ensureOpened();
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("create object - creating command for: " + adapter);
-        }
+        LOG.debug("create object - creating command for: {}", adapter);
         if (adapter.representsPersistent()) {
             throw new IllegalArgumentException("Adapter is persistent; adapter: " + adapter);
         }
@@ -1283,9 +1275,7 @@ public class PersistenceSession implements
     private DestroyObjectCommand newDestroyObjectCommand(final ObjectAdapter adapter) {
         ensureOpened();
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("destroy object - creating command for: " + adapter);
-        }
+        LOG.debug("destroy object - creating command for: {}", adapter);
         if (!adapter.representsPersistent()) {
             throw new IllegalArgumentException("Adapter is not persistent; adapter: " + adapter);
         }
@@ -1726,11 +1716,11 @@ public class PersistenceSession implements
                             thisVersion.different(otherVersion)) {
 
                         if(concurrencyCheckingGloballyEnabled && ConcurrencyChecking.isCurrentlyEnabled()) {
-                            LOG.info("concurrency conflict detected on " + recreatedOid + " (" + otherVersion + ")");
+                            LOG.info("concurrency conflict detected on {} ({})", recreatedOid, otherVersion);
                             final String currentUser = authenticationSession.getUserName();
                             throw new ConcurrencyException(currentUser, recreatedOid, thisVersion, otherVersion);
                         } else {
-                            LOG.info("concurrency conflict detected but suppressed, on " + recreatedOid + " (" + otherVersion + ")");
+                            LOG.info("concurrency conflict detected but suppressed, on {} ({})", recreatedOid, otherVersion);
                         }
                     }
                 }
@@ -1742,7 +1732,7 @@ public class PersistenceSession implements
                                 recreatedVersion.different(originalVersion))
                         ) {
                     if(LOG.isDebugEnabled()) {
-                        LOG.debug("updating version in oid, on " + originalOid + " (" + originalVersion + ") to (" + recreatedVersion +")");
+                        LOG.debug("updating version in oid, on {} ({}) to ({})", originalOid, originalVersion, recreatedVersion);
                     }
                     originalOid.setVersion(recreatedVersion);
                 }
@@ -1864,18 +1854,12 @@ public class PersistenceSession implements
 
         final RootAndCollectionAdapters rootAndCollectionAdapters = new RootAndCollectionAdapters(adapter, this);
 
-
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("remapAsPersistent: " + transientRootOid);
-        }
-
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("removing root adapter from oid map");
-        }
+        LOG.debug("remapAsPersistent: {}", transientRootOid);
+        LOG.debug("removing root adapter from oid map");
 
         boolean removed = oidAdapterMap.remove(transientRootOid);
         if (!removed) {
-            LOG.warn("could not remove oid: " + transientRootOid);
+            LOG.warn("could not remove oid: {}", transientRootOid);
             // should we fail here with a more serious error?
         }
 
@@ -1886,7 +1870,7 @@ public class PersistenceSession implements
             final Oid collectionOid = collectionAdapter.getOid();
             removed = oidAdapterMap.remove(collectionOid);
             if (!removed) {
-                LOG.warn("could not remove collectionOid: " + collectionOid);
+                LOG.warn("could not remove collectionOid: {}", collectionOid);
                 // should we fail here with a more serious error?
             }
         }
@@ -1916,8 +1900,7 @@ public class PersistenceSession implements
 
         // associate root adapter with the new Oid, and remap
         if (LOG.isDebugEnabled()) {
-            LOG.debug("replacing Oid for root adapter and re-adding into maps; oid is now: " + persistedRootOid.enString(
-            ) + " (was: " + transientRootOid.enString() + ")");
+            LOG.debug("replacing Oid for root adapter and re-adding into maps; oid is now: {} (was: {})", persistedRootOid.enString(), transientRootOid.enString());
         }
         adapter.replaceOid(persistedRootOid);
         oidAdapterMap.add(persistedRootOid, adapter);
@@ -1952,7 +1935,7 @@ public class PersistenceSession implements
         }
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("made persistent " + adapter + "; was " + transientRootOid);
+            LOG.debug("made persistent {}; was {}", adapter, transientRootOid);
         }
     }
 
@@ -2018,9 +2001,7 @@ public class PersistenceSession implements
     public void removeAdapter(final ObjectAdapter adapter) {
         ensureMapsConsistent(adapter);
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("removing adapter: " + adapter);
-        }
+        LOG.debug("removing adapter: {}", adapter);
 
         unmap(adapter);
     }
@@ -2122,7 +2103,7 @@ public class PersistenceSession implements
             // and would trigger a resolve
             // don't call toString() on adapter because calls hashCode on
             // underlying object, may also trigger a resolve.
-            LOG.debug("adding identity for adapter with oid=" + adapter.getOid());
+            LOG.debug("adding identity for adapter with oid={}", adapter.getOid());
         }
 
         // value adapters are not mapped (but all others - root and aggregated adapters - are)
@@ -2202,15 +2183,14 @@ public class PersistenceSession implements
                     thisVersion.different(otherVersion)) {
 
                 if (ConcurrencyChecking.isCurrentlyEnabled()) {
-                    LOG.info("concurrency conflict detected on " + thisOid + " (" + otherVersion + ")");
+                    LOG.info("concurrency conflict detected on {} ({})", thisOid, otherVersion);
                     final String currentUser = authenticationSession.getUserName();
                     final ConcurrencyException abortCause = new ConcurrencyException(currentUser, thisOid,
                             thisVersion, otherVersion);
                     getCurrentTransaction().setAbortCause(abortCause);
 
                 } else {
-                    LOG.info("concurrency conflict detected but suppressed, on " + thisOid + " (" + otherVersion
-                            + ")");
+                    LOG.info("concurrency conflict detected but suppressed, on {} ({})", thisOid, otherVersion);
                 }
             }
         } else {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
index 4504548..8a32edb 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
@@ -125,18 +125,18 @@ public class PersistenceSessionFactory implements ApplicationScopedComponent, Fi
             String transactionType = props.get("javax.jdo.option.TransactionType");
             // extended logging
             if(transactionType == null) {
-                LOG.info("found config properties to use non-JTA JNDI datasource (" + connectionFactoryName + ")");
+                LOG.info("found config properties to use non-JTA JNDI datasource ({})", connectionFactoryName);
                 if(connectionFactory2Name != null) {
-                    LOG.warn("found config properties to use non-JTA JNDI datasource (" + connectionFactoryName + "); second '-nontx' JNDI datasource also configured but will not be used (" + connectionFactory2Name +")");
+                    LOG.warn("found config properties to use non-JTA JNDI datasource ({}); second '-nontx' JNDI datasource also configured but will not be used ({})", connectionFactoryName, connectionFactory2Name);
                 }
             } else {
-                LOG.info("found config properties to use JTA JNDI datasource (" + connectionFactoryName + ")");
+                LOG.info("found config properties to use JTA JNDI datasource ({})", connectionFactoryName);
             }
             if(connectionFactory2Name == null) {
                 // JDO/DN itself will (probably) throw an exception
-                LOG.error("found config properties to use JTA JNDI datasource (" + connectionFactoryName + ") but config properties for second '-nontx' JNDI datasource were *not* found");
+                LOG.error("found config properties to use JTA JNDI datasource ({}) but config properties for second '-nontx' JNDI datasource were *not* found", connectionFactoryName);
             } else {
-                LOG.info("... and config properties for second '-nontx' JNDI datasource also found; " + connectionFactory2Name);
+                LOG.info("... and config properties for second '-nontx' JNDI datasource also found; {}", connectionFactory2Name);
             }
             // nothing further to do
             return;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/OidAdapterHashMap.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/OidAdapterHashMap.java
index 8765459..2282922 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/OidAdapterHashMap.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/OidAdapterHashMap.java
@@ -69,7 +69,7 @@ public class OidAdapterHashMap implements Iterable<Oid>, SessionScopedComponent
             // the pojo,
             // which for Hibernate PersistentCollections would trigger a
             // resolve.
-            LOG.debug("add oid: " + oid + " ; oid.hashCode: + #" + Long.toHexString(oid.hashCode()) + " ; adapter.hashCode(): #" + Long.toHexString(adapter.hashCode()));
+            LOG.debug("add oid: {} ; oid.hashCode: + #{} ; adapter.hashCode(): #{}", oid, Long.toHexString(oid.hashCode()), Long.toHexString(adapter.hashCode()));
         }
     }
 
@@ -79,9 +79,7 @@ public class OidAdapterHashMap implements Iterable<Oid>, SessionScopedComponent
      * @return <tt>true</tt> if an adapter was removed.
      */
     public boolean remove(final Oid oid) {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("remove oid: " + oid);
-        }
+        LOG.debug("remove oid: {}", oid);
         return adapterByOidMap.remove(oid) != null;
     }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/PojoAdapterHashMap.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/PojoAdapterHashMap.java
index a745156..75d7e5e 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/PojoAdapterHashMap.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/PojoAdapterHashMap.java
@@ -94,15 +94,13 @@ public class PojoAdapterHashMap implements Iterable<ObjectAdapter>, SessionScope
         adapterByPojoMap.put(key(pojo), adapter);
 
         if(LOG.isDebugEnabled()) {
-            LOG.debug("add adapter: #" + key(pojo) + " -> #" + Long.toHexString(adapter.hashCode()));
+            LOG.debug("add adapter: #{} -> #{}", key(pojo), Long.toHexString(adapter.hashCode()));
 
         }
     }
 
     public void remove(final ObjectAdapter object) {
-        if(LOG.isDebugEnabled()) {
-            LOG.debug("remove adapter: " + object);
-        }
+        LOG.debug("remove adapter: {}", object);
         adapterByPojoMap.remove(key(object.getObject()));
     }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
index 1ddcaf7..c834152 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
@@ -105,10 +105,10 @@ public class IsisSessionFactoryBuilder {
 
 
         LOG.info("initialising Isis System");
-        LOG.info("working directory: " + new File(".").getAbsolutePath());
+        LOG.info("working directory: {}", new File(".").getAbsolutePath());
 
         final IsisConfigurationDefault configuration = componentProvider.getConfiguration();
-        LOG.info("resource stream source: " + configuration.getResourceStreamSource());
+        LOG.info("resource stream source: {}", configuration.getResourceStreamSource());
 
         localeInitializer.initLocale(configuration);
         timeZoneInitializer.initTimeZone(configuration);
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
index f26f368..1cd2821 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
@@ -197,9 +197,7 @@ public class IsisTransaction implements TransactionScopedComponent, Transaction2
 
         this.state = State.IN_PROGRESS;
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("new transaction " + this);
-        }
+        LOG.debug("new transaction {}", this);
     }
 
     //endregion
@@ -274,23 +272,19 @@ public class IsisTransaction implements TransactionScopedComponent, Transaction2
         if (command instanceof DestroyObjectCommand) {
             if (alreadyHasCreate(onObject)) {
                 removeCreate(onObject);
-                if (LOG.isDebugEnabled()) {
-                    LOG.debug("ignored both create and destroy command " + command);
-                }
+                LOG.debug("ignored both create and destroy command {}", command);
                 return;
             }
 
             if (alreadyHasDestroy(onObject)) {
                 if (LOG.isDebugEnabled()) {
-                    LOG.debug("ignored command " + command + " as command already recorded");
+                    LOG.debug("ignored command {} as command already recorded", command );
                 }
                 return;
             }
         }
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("add command " + command);
-        }
+        LOG.debug("add command {}", command);
         persistenceCommands.add(command);
     }
 
@@ -339,9 +333,7 @@ public class IsisTransaction implements TransactionScopedComponent, Transaction2
         //
         // ensureThatState(getState().canFlush(), is(true), "state is: " + getState());
         //
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("flush transaction " + this);
-        }
+        LOG.debug("flush transaction {}", this);
 
         try {
             doFlush();
@@ -416,14 +408,10 @@ public class IsisTransaction implements TransactionScopedComponent, Transaction2
         assert getState().canCommit();
         assert abortCause == null;
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("preCommit transaction " + this);
-        }
+        LOG.debug("preCommit transaction {}", this);
 
         if (getState() == State.COMMITTED) {
-            if (LOG.isInfoEnabled()) {
-                LOG.info("already committed; ignoring");
-            }
+            LOG.info("already committed; ignoring");
             return;
         }
 
@@ -448,14 +436,10 @@ public class IsisTransaction implements TransactionScopedComponent, Transaction2
         assert getState().canCommit();
         assert abortCause == null;
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("postCommit transaction " + this);
-        }
+        LOG.debug("postCommit transaction {}", this);
 
         if (getState() == State.COMMITTED) {
-            if (LOG.isInfoEnabled()) {
-                LOG.info("already committed; ignoring");
-            }
+            LOG.info("already committed; ignoring");
             return;
         }
 
@@ -473,10 +457,7 @@ public class IsisTransaction implements TransactionScopedComponent, Transaction2
     final void markAsAborted() {
         assert getState().canAbort();
 
-        if (LOG.isInfoEnabled()) {
-            LOG.info("abort transaction " + this);
-        }
-
+        LOG.info("abort transaction {}", this);
         setState(State.ABORTED);
     }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
index 521b8d7..1792a5a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransactionManager.java
@@ -248,7 +248,7 @@ public class IsisTransactionManager implements SessionScopedComponent {
         transactionLevel++;
 
         if (LOG.isDebugEnabled()) {
-            LOG.debug("startTransaction: level " + (transactionLevel - 1) + "->" + (transactionLevel) + (noneInProgress ? " (no transaction in progress or was previously completed; transaction created)" : ""));
+            LOG.debug("startTransaction: level {}->{}{}", (transactionLevel - 1), (transactionLevel), (noneInProgress ? " (no transaction in progress or was previously completed; transaction created)" : ""));
         }
     }
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
index 66edd6a..614b63c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProviderUsingInstallers.java
@@ -168,21 +168,21 @@ public class IsisComponentProviderUsingInstallers extends IsisComponentProvider
                 }
                 try {
                     final Installer object = (Installer) InstanceUtil.createInstance(className, isisConfiguration);
-                    LOG.debug("created component installer: " + object.getName() + " - " + className);
+                    LOG.debug("created component installer: {} - {}", object.getName(), className);
                     installerList.add(object);
                 } catch (final UnavailableClassException e) {
-                    LOG.info("component installer not found; it will not be available: " + className);
+                    LOG.info("component installer not found; it will not be available: {}", className);
                 } catch (final InstanceCreationClassException e) {
-                    LOG.info("instance creation exception: " + e.getMessage());
+                    LOG.info("instance creation exception: {}", e.getMessage());
                 } catch (final InstanceCreationException e) {
                     try {
                         final Installer object = (Installer) InstanceUtil.createInstance(className);
-                        LOG.debug("created component installer: " + object.getName() + " - " + className);
+                        LOG.debug("created component installer: {} - {}", object.getName(), className);
                         installerList.add(object);
                     } catch (final UnavailableClassException e2) {
-                        LOG.info("component installer not found; it will not be available: " + className);
+                        LOG.info("component installer not found; it will not be available: {}", className);
                     } catch (final InstanceCreationClassException e2) {
-                        LOG.info("instance creation exception: " + e2.getMessage());
+                        LOG.info("instance creation exception: {}", e2.getMessage());
                     }
                 }
             }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
index 9123aea..e1224f7 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/IsisWebAppBootstrapper.java
@@ -139,10 +139,10 @@ public class IsisWebAppBootstrapper implements ServletContextListener {
         // will load either from WEB-INF, from the classpath or from config directory.
         final String configLocation = servletContext.getInitParameter(WebAppConstants.CONFIG_DIR_PARAM);
         if ( configLocation != null ) {
-            LOG.info( "Config override location: " + configLocation );
+            LOG.info("Config override location: {}", configLocation );
             isisConfigurationBuilder.addResourceStreamSource(ResourceStreamSourceFileSystem.create(configLocation));
         } else {
-            LOG.info( "Config override location: No override location configured" );
+            LOG.info("Config override location: No override location configured" );
 
             isisConfigurationBuilder.addResourceStreamSource(ResourceStreamSourceContextLoaderClassPath.create());
             isisConfigurationBuilder.addResourceStreamSource(new ResourceStreamSourceCurrentClassClassPath());
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
index 990e52d..6b2d536 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
@@ -196,7 +196,7 @@ public class CreateSchemaObjectFromClassMetadata implements MetaDataListener, Da
                 }
                 catch (Exception e)
                 {
-                    LOG.warn("Error invoking decrypter class " + decrypterName, e);
+                    LOG.warn("Error invoking decrypter class {}", decrypterName, e);
                 }
             }
         }
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/commands/DataNucleusCreateObjectCommand.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/commands/DataNucleusCreateObjectCommand.java
index 2410965..de622c4 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/commands/DataNucleusCreateObjectCommand.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/commands/DataNucleusCreateObjectCommand.java
@@ -40,7 +40,7 @@ public class DataNucleusCreateObjectCommand extends AbstractDataNucleusObjectCom
     @Override
     public void execute(final PersistenceCommandContext context) {
         if (LOG.isDebugEnabled()) {
-            LOG.debug("create object - executing command for: " + onAdapter());
+            LOG.debug("create object - executing command for: {}", onAdapter());
         }
         final ObjectAdapter adapter = onAdapter();
         if(!adapter.isTransient()) {
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/commands/DataNucleusDeleteObjectCommand.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/commands/DataNucleusDeleteObjectCommand.java
index b3102b8..0b1453c 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/commands/DataNucleusDeleteObjectCommand.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/commands/DataNucleusDeleteObjectCommand.java
@@ -38,7 +38,7 @@ public class DataNucleusDeleteObjectCommand extends AbstractDataNucleusObjectCom
     @Override
     public void execute(final PersistenceCommandContext context) {
         if (LOG.isDebugEnabled()) {
-            LOG.debug("destroy object - executing command for " + onAdapter());
+            LOG.debug("destroy object - executing command for {}", onAdapter());
         }
         getPersistenceManager().deletePersistent(onAdapter().getObject());
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
index c9830e6..4f10cc4 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
@@ -49,7 +49,7 @@ public class PersistenceQueryFindAllInstancesProcessor extends PersistenceQueryP
         jdoQuery.addExtension("datanucleus.multivaluedFetch", "none");
         
         if (LOG.isDebugEnabled()) {
-            LOG.debug("allInstances(): class=" + specification.getFullIdentifier());
+            LOG.debug("allInstances(): class={}", specification.getFullIdentifier());
         }
 
         try {
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
index 6dd774d..d6c3b4e 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
@@ -80,7 +80,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
         jdoQuery.addExtension("datanucleus.multivaluedFetch", "none");
         
         if (LOG.isDebugEnabled()) {
-            LOG.debug(cls.getName() + " # " + queryName + " ( " + filter + " )");
+            LOG.debug("{} # {} ( {} )", cls.getName(), queryName, filter);
         }
 
         try {
@@ -110,7 +110,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
         }
         
         if (LOG.isDebugEnabled()) {
-            LOG.debug(cls.getName() + " # " + queryName + " ( " + argumentsByParameterName + " )");
+            LOG.debug("{} # {} ( {} )", cls.getName(), queryName, argumentsByParameterName);
         }
         
         try {
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/QueryUtil.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/QueryUtil.java
index af8e51b..70864ee 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/QueryUtil.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/QueryUtil.java
@@ -45,9 +45,7 @@ public final class QueryUtil {
         appendWhere(buf, whereClause);
 
         final String queryString = buf.toString();
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("creating query: " + queryString);
-        }
+        LOG.debug("creating query: {}", queryString);
 
         final Query jdoQuery = persistenceManager.newQuery(queryString);
         
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 6719fcd..03426ac 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -426,10 +426,10 @@ public class IsisWicketApplication
                 }
             }
 
-            LOG.info("storeSettings.inmemoryCacheSize        : " + getStoreSettings().getInmemoryCacheSize());
-            LOG.info("storeSettings.asynchronousQueueCapacity: " + getStoreSettings().getAsynchronousQueueCapacity());
-            LOG.info("storeSettings.maxSizePerSession        : " + getStoreSettings().getMaxSizePerSession());
-            LOG.info("storeSettings.fileStoreFolder          : " + getStoreSettings().getFileStoreFolder());
+            LOG.info("storeSettings.inmemoryCacheSize        : {}", getStoreSettings().getInmemoryCacheSize());
+            LOG.info("storeSettings.asynchronousQueueCapacity: {}", getStoreSettings().getAsynchronousQueueCapacity());
+            LOG.info("storeSettings.maxSizePerSession        : {}", getStoreSettings().getMaxSizePerSession());
+            LOG.info("storeSettings.fileStoreFolder          : {}", getStoreSettings().getFileStoreFolder());
 
         } catch(RuntimeException ex) {
             // because Wicket's handling in its WicketFilter (that calls this method) does not log the exception.
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
index c5b6349..854a427 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
@@ -130,9 +130,7 @@ public class WebRequestCycleForIsis extends AbstractRequestCycleListener {
      */
     @Override
     public void onRequestHandlerExecuted(RequestCycle cycle, IRequestHandler handler) {
-        if(LOG.isDebugEnabled()) {
-            LOG.debug("onRequestHandlerExecuted: handler: " + handler);
-        }
+        LOG.debug("onRequestHandlerExecuted: handler: {}", handler);
 
         if(handler instanceof RenderPageRequestHandler) {
             AdapterManager.ConcurrencyChecking.reset(AdapterManager.ConcurrencyChecking.CHECK);
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
index a280304..7e005f6 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
@@ -63,7 +63,7 @@ public class TranslationsResolverWicket implements TranslationsResolver {
         final String configLocation = servletContext.getInitParameter(WebAppConstants.CONFIG_DIR_PARAM);
         try {
             if(configLocation != null) {
-                LOG.info( "Reading translations relative to config override location: " + configLocation );
+                LOG.info( "Reading translations relative to config override location: {}", configLocation );
                 return Files.readLines(newFile(configLocation, file), Charsets.UTF_8);
             } else {
                 final URL url = servletContext.getResource("/WEB-INF/" + file);
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
index ffb303a..02fd64b 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithMultiPending.java
@@ -58,14 +58,10 @@ public interface ScalarModelWithMultiPending extends Serializable {
                 public ArrayList<ObjectAdapterMemento> getObject() {
                     final ArrayList<ObjectAdapterMemento> pending = owner.getMultiPending();
                     if (pending != null) {
-                        if (LOG.isDebugEnabled()) {
-                            LOG.debug("pending not null: " + pending.toString());
-                        }
+                        LOG.debug("pending not null: {}", pending.toString());
                         return pending;
                     }
-                    if (LOG.isDebugEnabled()) {
-                        LOG.debug("pending is null");
-                    }
+                    LOG.debug("pending is null");
 
                     final ScalarModel scalarModel = owner.getScalarModel();
                     final ObjectAdapterMemento objectAdapterMemento = scalarModel.getObjectAdapterMemento();
@@ -76,9 +72,7 @@ public interface ScalarModelWithMultiPending extends Serializable {
 
                 @Override
                 public void setObject(final ArrayList<ObjectAdapterMemento> adapterMemento) {
-                    if (LOG.isDebugEnabled()) {
-                        LOG.debug(String.format("setting to: %s", adapterMemento != null ? adapterMemento.toString() : null));
-                    }
+                    LOG.debug("setting to: {}", (adapterMemento != null ? adapterMemento.toString() : null));
                     owner.setMultiPending(adapterMemento);
 
                     final ScalarModel ownerScalarModel = owner.getScalarModel();
@@ -90,9 +84,7 @@ public interface ScalarModelWithMultiPending extends Serializable {
                     } else {
                         final ArrayList<ObjectAdapterMemento> ownerPending = owner.getMultiPending();
                         if (ownerPending != null) {
-                            if (LOG.isDebugEnabled()) {
-                                LOG.debug(String.format("setting to pending: %s", ownerPending.toString()));
-                            }
+                            LOG.debug("setting to pending: {}", ownerPending.toString());
                             final ObjectSpecId objectSpecId = ownerScalarModel.getTypeOfSpecification().getSpecId();
                             ownerScalarModel.setObjectMemento(
                                     ObjectAdapterMemento.createForList(adapterMemento, objectSpecId),
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
index aaae5ee..09ad0f4 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModelWithPending.java
@@ -54,15 +54,11 @@ public interface ScalarModelWithPending extends Serializable {
                 @Override
                 public ObjectAdapterMemento getObject() {
                     if (owner.getPending() != null) {
-                        if (LOG.isDebugEnabled()) {
-                            LOG.debug("pending not null: " + owner.getPending().toString());
-                        }
+                        LOG.debug("pending not null: {}", owner.getPending().toString());
                         return owner.getPending();
                     }
-                    if (LOG.isDebugEnabled()) {
-                        LOG.debug("pending is null");
-                    }
-                    
+                    LOG.debug("pending is null");
+
                     final ObjectAdapterMemento objectAdapterMemento = owner.getScalarModel().getObjectAdapterMemento();
                     owner.setPending(objectAdapterMemento);
 
@@ -71,9 +67,7 @@ public interface ScalarModelWithPending extends Serializable {
 
                 @Override
                 public void setObject(final ObjectAdapterMemento adapterMemento) {
-                    if (LOG.isDebugEnabled()) {
-                        LOG.debug("setting to: " + (adapterMemento!=null?adapterMemento.toString():null) );
-                    }
+                    LOG.debug("setting to: {}", (adapterMemento!=null?adapterMemento.toString():null) );
                     owner.setPending(adapterMemento);
                     final ScalarModel ownerScalarModel = owner.getScalarModel();
                     if (ownerScalarModel != null) {
@@ -82,9 +76,7 @@ public interface ScalarModelWithPending extends Serializable {
                         } else {
                             final ObjectAdapterMemento ownerPending = owner.getPending();
                             if (ownerPending != null) {
-                                if (LOG.isDebugEnabled()) {
-                                    LOG.debug("setting to pending: " + ownerPending.toString());
-                                }
+                                LOG.debug("setting to pending: {}", ownerPending.toString());
                                 ownerScalarModel.setObject(
                                         ownerPending.getObjectAdapter(
                                             ConcurrencyChecking.NO_CHECK,
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/ThemeChooser.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/ThemeChooser.java
index 3956c45..ec37549 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/ThemeChooser.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/ThemeChooser.java
@@ -157,7 +157,7 @@ public class ThemeChooser extends Panel {
                 theme = BootswatchTheme.valueOf(themeName);
             }
         } catch (Exception x) {
-            LOG.warn("Cannot find a theme with name '"+themeName+"' in all available theme providers: " + x.getMessage());
+            LOG.warn("Cannot find a theme with name '{}' in all available theme providers: {}", themeName, x.getMessage());
             // fallback to Bootstrap default theme if the parsing by name failed somehow
             theme = new BootstrapThemeTheme();
         }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
index fc9b2b4..aa1ca99 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/FormExecutorDefault.java
@@ -415,7 +415,7 @@ public final class FormExecutorDefault<M extends BookmarkableModel<ObjectAdapter
     }
 
     private void debug(final String title, final List<Component> list) {
-        LOG.debug(">>> " + title + ":");
+        LOG.debug(">>> {}:", title);
         for (Component component : list) {
             LOG.debug(
                     String.format("%30s: %s",

-- 
To stop receiving notification emails like this one, please contact
danhaywood@apache.org.

[isis] 02/02: ISIS-1569: improves log message and javadoc in BackgroundCommandExecution, is all.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch maint-1.16.1
in repository https://gitbox.apache.org/repos/asf/isis.git

commit a4fc90bfdd21ce079a9acdea731a0a4c12e15b74
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Feb 1 09:05:18 2018 +0000

    ISIS-1569: improves log message and javadoc in BackgroundCommandExecution, is all.
---
 .../background/BackgroundCommandExecution.java         | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
index 7f616aa..9127933 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
@@ -146,8 +146,7 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp
 
             final boolean shouldContinue = execute(transactionManager, command);
             if(!shouldContinue) {
-                LOG.info("OnExceptionPolicy is to QUIT, so skipping further processing",
-                        command.getMemberIdentifier());
+                LOG.info("NOT continuing to process any further commands, quitting execution");
                 return;
             }
         }
@@ -160,7 +159,9 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp
 
     // //////////////////////////////////////
 
-    
+    /**
+     * @return - whether to process any further commands.
+     */
     private boolean execute(
             final IsisTransactionManager transactionManager,
             final Command command) {
@@ -202,6 +203,9 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp
         }
     }
 
+    /**
+     * @return - whether to process any further commands.
+     */
     private Boolean executeCommandWithinTran(
             final IsisTransactionManager transactionManager,
             final Command command) {
@@ -217,6 +221,9 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp
         });
     }
 
+    /**
+     * @return - whether to process any further commands.
+     */
     private Boolean executeCommandPerSudoPolicy(
             final IsisTransactionManager transactionManager,
             final Command command) {
@@ -241,6 +248,8 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp
      * Simply delegates to {@link #doExecuteCommand(IsisTransactionManager, Command)}.
      *
      * Overridable, so execution policy can be adjusted if required.
+     *
+     * @return - whether to process any further commands.
      */
     protected Boolean executeCommand(
             final IsisTransactionManager transactionManager,
@@ -250,6 +259,8 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp
 
     /**
      * Not overrideable, but intended to be called by {@link #executeCommand(IsisTransactionManager, Command)} (which is).
+     *
+     * @return - whether to process any further commands.
      */
     protected final Boolean doExecuteCommand(
             final IsisTransactionManager transactionManager,
@@ -567,5 +578,4 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp
     @javax.inject.Inject
     ClockService clockService;
 
-
 }

-- 
To stop receiving notification emails like this one, please contact
danhaywood@apache.org.