You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2020/05/08 10:29:22 UTC

[ignite] branch master updated: IGNITE-12985 Fixed unguarded log.info()/log.debug()/log.trace() calls. - Fixes #7776.

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

agoncharuk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 6e9a6d3  IGNITE-12985 Fixed unguarded log.info()/log.debug()/log.trace() calls. - Fixes #7776.
6e9a6d3 is described below

commit 6e9a6d37d86b4024c113a6e584d188c2bef8ce9c
Author: Sergey Antonov <an...@gmail.com>
AuthorDate: Fri May 8 13:26:13 2020 +0300

    IGNITE-12985 Fixed unguarded log.info()/log.debug()/log.trace() calls. - Fixes #7776.
    
    Signed-off-by: Alexey Goncharuk <al...@gmail.com>
---
 .../cassandra/session/CassandraSessionImpl.java    | 60 +++++++++-----
 ...ThinPartitionAwarenessTransactionsSelfTest.java |  4 +-
 .../DefaultCommunicationFailureResolver.java       | 11 +--
 .../org/apache/ignite/internal/IgnitionEx.java     |  5 +-
 .../affinity/GridAffinityAssignmentCache.java      |  2 +-
 .../processors/cache/CacheGroupContext.java        | 11 ++-
 .../dht/topology/GridDhtPartitionTopologyImpl.java | 12 +--
 .../dht/topology/PartitionsEvictManager.java       |  8 +-
 .../GridCacheDatabaseSharedManager.java            | 35 ++++----
 .../pagemem/PagesWriteSpeedBasedThrottle.java      |  2 +-
 .../persistence/wal/scanner/PrintToLogHandler.java |  3 +-
 .../verify/VerifyBackupPartitionsDumpTask.java     |  6 +-
 .../autoadjust/BaselineAutoAdjustScheduler.java    |  6 +-
 .../datastructures/GridCacheLockImpl.java          |  5 +-
 .../diagnostic/PageHistoryDiagnoster.java          |  6 +-
 .../processors/odbc/ClientListenerProcessor.java   |  9 +-
 .../ignite/internal/util/GridJavaProcess.java      |  2 +-
 .../ignite/internal/util/IgniteStopwatch.java      | 14 ++--
 .../ignite/spi/discovery/tcp/ClientImpl.java       |  3 +-
 .../internal/GridJobMasterLeaveAwareSelfTest.java  |  8 +-
 .../MessageDirectTypeIdConflictTest.java           |  3 +-
 .../IgnitePdsBinaryMetadataAsyncWritingTest.java   | 13 ++-
 .../pagemem/IgniteThrottlingUnitTest.java          |  2 +
 .../persistence/wal/scanner/WalScannerTest.java    |  4 +
 ...CacheContinuousWithTransformerFailoverTest.java |  3 +-
 ...coveryDataDeserializationFailureHanderTest.java |  3 +-
 .../failure/FailureProcessorLoggingTest.java       |  7 +-
 .../FailureProcessorThreadDumpThrottlingTest.java  |  2 +-
 .../apache/ignite/testframework/GridTestUtils.java | 23 ++++++
 .../ignite/testframework/ListeningTestLogger.java  | 50 +++++++-----
 .../testframework/junits/GridAbstractTest.java     | 23 +++++-
 .../junits/logger/GridTestLog4jLogger.java         |  6 ++
 .../junits/logger/GridTestLog4jLoggerSelfTest.java | 95 ++++++++++++++++++++++
 .../ignite/testsuites/IgniteLangSelfTestSuite.java |  3 +
 .../processors/query/h2/SchemaManager.java         |  6 +-
 .../query/h2/twostep/GridMapQueryExecutor.java     |  2 +-
 .../query/h2/twostep/ReducePartitionMapper.java    | 40 +++++----
 .../processors/client/IgniteDataStreamerTest.java  |  6 +-
 .../org/apache/ignite/sqltests/BaseSqlTest.java    |  3 +-
 .../apache/ignite/stream/kafka/KafkaStreamer.java  |  3 +-
 .../java/org/apache/ignite/ml/math/Tracer.java     | 11 ++-
 .../ignite/ml/util/plugin/MLPluginProvider.java    |  6 +-
 .../osgi/IgniteAbstractOsgiContextActivator.java   |  3 +-
 .../zk/internal/ZookeeperDiscoveryImpl.java        |  2 +-
 44 files changed, 384 insertions(+), 147 deletions(-)

diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
index 5267d3f..c954ef9 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
@@ -697,17 +697,25 @@ public class CassandraSessionImpl implements CassandraSession {
             try {
                 ses = session();
 
-                log.info("-----------------------------------------------------------------------");
-                log.info("Creating Cassandra keyspace '" + settings.getKeyspace() + "'");
-                log.info("-----------------------------------------------------------------------\n\n" +
-                    settings.getKeyspaceDDLStatement() + "\n");
-                log.info("-----------------------------------------------------------------------");
+                if (log.isInfoEnabled()) {
+                    log.info("-----------------------------------------------------------------------");
+                    log.info("Creating Cassandra keyspace '" + settings.getKeyspace() + "'");
+                    log.info("-----------------------------------------------------------------------\n\n" +
+                        settings.getKeyspaceDDLStatement() + "\n");
+                    log.info("-----------------------------------------------------------------------");
+                }
+
                 ses.execute(settings.getKeyspaceDDLStatement());
-                log.info("Cassandra keyspace '" + settings.getKeyspace() + "' was successfully created");
+
+                if (log.isInfoEnabled())
+                    log.info("Cassandra keyspace '" + settings.getKeyspace() + "' was successfully created");
+
                 return;
             }
             catch (AlreadyExistsException ignored) {
-                log.info("Cassandra keyspace '" + settings.getKeyspace() + "' already exist");
+                if (log.isInfoEnabled())
+                    log.info("Cassandra keyspace '" + settings.getKeyspace() + "' already exist");
+
                 return;
             }
             catch (Throwable e) {
@@ -742,17 +750,25 @@ public class CassandraSessionImpl implements CassandraSession {
             try {
                 ses = session();
 
-                log.info("-----------------------------------------------------------------------");
-                log.info("Creating Cassandra table '" + tableFullName + "'");
-                log.info("-----------------------------------------------------------------------\n\n" +
+                if (log.isInfoEnabled()) {
+                    log.info("-----------------------------------------------------------------------");
+                    log.info("Creating Cassandra table '" + tableFullName + "'");
+                    log.info("-----------------------------------------------------------------------\n\n" +
                         settings.getTableDDLStatement(table) + "\n");
-                log.info("-----------------------------------------------------------------------");
+                    log.info("-----------------------------------------------------------------------");
+                }
+
                 ses.execute(settings.getTableDDLStatement(table));
-                log.info("Cassandra table '" + tableFullName + "' was successfully created");
+
+                if (log.isInfoEnabled())
+                    log.info("Cassandra table '" + tableFullName + "' was successfully created");
+
                 return;
             }
             catch (AlreadyExistsException ignored) {
-                log.info("Cassandra table '" + tableFullName + "' already exist");
+                if (log.isInfoEnabled())
+                    log.info("Cassandra table '" + tableFullName + "' already exist");
+
                 return;
             }
             catch (Throwable e) {
@@ -798,14 +814,19 @@ public class CassandraSessionImpl implements CassandraSession {
             try {
                 ses = session();
 
-                log.info("-----------------------------------------------------------------------");
-                log.info("Creating indexes for Cassandra table '" + tableFullName + "'");
-                log.info("-----------------------------------------------------------------------");
+                if (log.isInfoEnabled()) {
+                    log.info("-----------------------------------------------------------------------");
+                    log.info("Creating indexes for Cassandra table '" + tableFullName + "'");
+                    log.info("-----------------------------------------------------------------------");
+                }
 
                 for (String statement : indexDDLStatements) {
                     try {
-                        log.info(statement);
-                        log.info("-----------------------------------------------------------------------");
+                        if (log.isInfoEnabled()) {
+                            log.info(statement);
+                            log.info("-----------------------------------------------------------------------");
+                        }
+
                         ses.execute(statement);
                     }
                     catch (AlreadyExistsException ignored) {
@@ -816,7 +837,8 @@ public class CassandraSessionImpl implements CassandraSession {
                     }
                 }
 
-                log.info("Indexes for Cassandra table '" + tableFullName + "' were successfully created");
+                if (log.isInfoEnabled())
+                    log.info("Indexes for Cassandra table '" + tableFullName + "' were successfully created");
 
                 return;
             }
diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinPartitionAwarenessTransactionsSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinPartitionAwarenessTransactionsSelfTest.java
index f250571..8afb8f2 100644
--- a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinPartitionAwarenessTransactionsSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinPartitionAwarenessTransactionsSelfTest.java
@@ -32,7 +32,6 @@ import org.apache.ignite.internal.processors.query.NestedTxMode;
 import org.apache.ignite.internal.processors.query.QueryHistory;
 import org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing;
 import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.testframework.GridStringLogger;
 import org.jetbrains.annotations.NotNull;
 import org.junit.Test;
 
@@ -60,8 +59,7 @@ public class JdbcThinPartitionAwarenessTransactionsSelfTest extends JdbcThinAbst
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
         return super.getConfiguration(igniteInstanceName)
             .setCacheConfiguration(cacheConfiguration(DEFAULT_CACHE_NAME).setNearConfiguration(null))
-            .setMarshaller(new BinaryMarshaller())
-            .setGridLogger(log = new GridStringLogger());
+            .setMarshaller(new BinaryMarshaller());
     }
 
     /**
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/DefaultCommunicationFailureResolver.java b/modules/core/src/main/java/org/apache/ignite/configuration/DefaultCommunicationFailureResolver.java
index 30a8802..eccba3f 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/DefaultCommunicationFailureResolver.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/DefaultCommunicationFailureResolver.java
@@ -48,11 +48,12 @@ public class DefaultCommunicationFailureResolver implements CommunicationFailure
         if (largestCluster == null)
             return;
 
-        log.info("Communication problem resolver found fully connected independent cluster ["
-            + "serverNodesCnt=" + largestCluster.srvNodesCnt + ", "
-            + "clientNodesCnt=" + largestCluster.connectedClients.size() + ", "
-            + "totalAliveNodes=" + ctx.topologySnapshot().size() + ", "
-            + "serverNodesIds=" + clusterNodeIds(largestCluster.srvNodesSet, ctx.topologySnapshot(), 1000) + "]");
+        if (log.isInfoEnabled())
+            log.info("Communication problem resolver found fully connected independent cluster ["
+                + "serverNodesCnt=" + largestCluster.srvNodesCnt + ", "
+                + "clientNodesCnt=" + largestCluster.connectedClients.size() + ", "
+                + "totalAliveNodes=" + ctx.topologySnapshot().size() + ", "
+                + "serverNodesIds=" + clusterNodeIds(largestCluster.srvNodesSet, ctx.topologySnapshot(), 1000) + "]");
 
         keepCluster(ctx, largestCluster);
     }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
index ff6ddfb..2698ee9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
@@ -1702,8 +1702,9 @@ public class IgnitionEx {
 
                     start0(startCtx, myCfg, startNodeTimer);
 
-                    log.info("Node started : "
-                        + startNodeTimer.stagesTimings().stream().collect(joining(",", "[", "]")));
+                    if (log.isInfoEnabled())
+                        log.info("Node started : "
+                            + startNodeTimer.stagesTimings().stream().collect(joining(",", "[", "]")));
                 }
                 catch (Exception e) {
                     if (log != null)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java
index 52a9342..f2037e5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java
@@ -535,7 +535,7 @@ public class GridAffinityAssignmentCache {
         float deltaPrimary = Math.abs(1 - (float)locPrimaryCnt / expCnt) * 100;
         float deltaBackup = Math.abs(1 - (float)locBackupCnt / (expCnt * backups)) * 100;
 
-        if (deltaPrimary > partDistribution || deltaBackup > partDistribution) {
+        if ((deltaPrimary > partDistribution || deltaBackup > partDistribution) && log.isInfoEnabled()) {
             log.info(String.format("Local node affinity assignment distribution is not ideal " +
                     "[cache=%s, expectedPrimary=%.2f, actualPrimary=%d, " +
                     "expectedBackups=%.2f, actualBackups=%d, warningThreshold=%.2f%%]",
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java
index 54ed210..c1242d2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java
@@ -1240,8 +1240,9 @@ public class CacheGroupContext {
      */
     public void globalWalEnabled(boolean enabled) {
         if (globalWalEnabled != enabled) {
-            log.info("Global WAL state for group=" + cacheOrGroupName() +
-                " changed from " + globalWalEnabled + " to " + enabled);
+            if (log.isInfoEnabled())
+                log.info("Global WAL state for group=" + cacheOrGroupName() +
+                    " changed from " + globalWalEnabled + " to " + enabled);
 
             persistGlobalWalState(enabled);
 
@@ -1255,8 +1256,10 @@ public class CacheGroupContext {
      */
     public void localWalEnabled(boolean enabled, boolean persist) {
         if (localWalEnabled != enabled) {
-            log.info("Local WAL state for group=" + cacheOrGroupName() +
-                " changed from " + localWalEnabled + " to " + enabled);
+            if (log.isInfoEnabled()) {
+                log.info("Local WAL state for group=" + cacheOrGroupName() +
+                    " changed from " + localWalEnabled + " to " + enabled);
+            }
 
             if (persist)
                 persistLocalWalState(enabled);
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/GridDhtPartitionTopologyImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/GridDhtPartitionTopologyImpl.java
index 1a94737..528bd63 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/GridDhtPartitionTopologyImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/GridDhtPartitionTopologyImpl.java
@@ -2704,14 +2704,14 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology {
     @Override public void ownMoving(AffinityTopologyVersion rebFinishedTopVer) {
         lock.writeLock().lock();
 
-        AffinityTopologyVersion lastAffChangeVer = ctx.exchange().lastAffinityChangedTopologyVersion(lastTopChangeVer);
+        try {
+            AffinityTopologyVersion lastAffChangeVer = ctx.exchange().lastAffinityChangedTopologyVersion(lastTopChangeVer);
 
-        if (lastAffChangeVer.compareTo(rebFinishedTopVer) > 0)
-            log.info("Affinity topology changed, no MOVING partitions will be owned " +
-                "[rebFinishedTopVer=" + rebFinishedTopVer +
-                ", lastAffChangeVer=" + lastAffChangeVer + "]");
+            if (lastAffChangeVer.compareTo(rebFinishedTopVer) > 0 && log.isInfoEnabled())
+                log.info("Affinity topology changed, no MOVING partitions will be owned " +
+                    "[rebFinishedTopVer=" + rebFinishedTopVer +
+                    ", lastAffChangeVer=" + lastAffChangeVer + "]");
 
-        try {
             for (GridDhtLocalPartition locPart : grp.topology().currentLocalPartitions()) {
                 if (locPart.state() == MOVING) {
                     boolean reserved = locPart.reserve();
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/PartitionsEvictManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/PartitionsEvictManager.java
index db84007..e2d28c2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/PartitionsEvictManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/PartitionsEvictManager.java
@@ -295,7 +295,8 @@ public class PartitionsEvictManager extends GridCacheSharedManagerAdapter {
         if (threads == 0)
             threads = permits = 1;
 
-        log.info("Evict partition permits=" + permits);
+        if (log.isInfoEnabled())
+            log.info("Evict partition permits=" + permits);
 
         evictionQueue = new BucketQueue(threads);
     }
@@ -420,8 +421,9 @@ public class PartitionsEvictManager extends GridCacheSharedManagerAdapter {
         private void awaitFinish(Integer part, IgniteInternalFuture<?> fut) {
             // Wait for last offered partition eviction completion
             try {
-                log.info("Await partition evict, grpName=" + grp.cacheOrGroupName() +
-                    ", grpId=" + grp.groupId() + ", partId=" + part);
+                if (log.isInfoEnabled())
+                    log.info("Await partition evict, grpName=" + grp.cacheOrGroupName() +
+                        ", grpId=" + grp.groupId() + ", partId=" + part);
 
                 fut.get();
             }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
index 9d9433b..7e2a0ae 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
@@ -2298,8 +2298,9 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
                 WALPointer cpMark = ((CheckpointRecord)startRec).checkpointMark();
 
                 if (cpMark != null) {
-                    log.info("Restoring checkpoint after logical recovery, will start physical recovery from " +
-                        "back pointer: " + cpMark);
+                    if (log.isInfoEnabled())
+                        log.info("Restoring checkpoint after logical recovery, will start physical recovery from " +
+                            "back pointer: " + cpMark);
 
                     recPtr = cpMark;
                 }
@@ -2468,8 +2469,9 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
                     "on disk, but checkpoint record is missed in WAL) " +
                     "[cpStatus=" + status + ", lastRead=" + lastReadPtr + "]");
 
-            log.info("Finished applying memory changes [changesApplied=" + applied +
-                ", time=" + (U.currentTimeMillis() - start) + " ms]");
+            if (log.isInfoEnabled())
+                log.info("Finished applying memory changes [changesApplied=" + applied +
+                    ", time=" + (U.currentTimeMillis() - start) + " ms]");
 
             finalizeCheckpointOnRecovery(status.cpStartTs, status.cpStartId, status.startPtr, exec);
         }
@@ -5222,11 +5224,12 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
             GridDhtLocalPartition part = grp.topology().localPartition(p);
 
             if (part != null) {
-                log.info("Partition [grp=" + grp.cacheOrGroupName()
-                    + ", id=" + p
-                    + ", state=" + part.state()
-                    + ", counter=" + part.dataStore().partUpdateCounter()
-                    + ", size=" + part.fullSize() + "]");
+                if (log.isInfoEnabled())
+                    log.info("Partition [grp=" + grp.cacheOrGroupName()
+                        + ", id=" + p
+                        + ", state=" + part.state()
+                        + ", counter=" + part.dataStore().partUpdateCounter()
+                        + ", size=" + part.fullSize() + "]");
 
                 continue;
             }
@@ -5237,7 +5240,8 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
             pageStore.ensure(grp.groupId(), p);
 
             if (pageStore.pages(grp.groupId(), p) <= 1) {
-                log.info("Partition [grp=" + grp.cacheOrGroupName() + ", id=" + p + ", state=N/A (only file header) ]");
+                if (log.isInfoEnabled())
+                    log.info("Partition [grp=" + grp.cacheOrGroupName() + ", id=" + p + ", state=N/A (only file header) ]");
 
                 continue;
             }
@@ -5258,11 +5262,12 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
                     long updateCntr = io.getUpdateCounter(pageAddr);
                     long size = io.getSize(pageAddr);
 
-                    log.info("Partition [grp=" + grp.cacheOrGroupName()
-                            + ", id=" + p
-                            + ", state=" + state
-                            + ", counter=" + updateCntr
-                            + ", size=" + size + "]");
+                    if (log.isInfoEnabled())
+                        log.info("Partition [grp=" + grp.cacheOrGroupName()
+                                + ", id=" + p
+                                + ", state=" + state
+                                + ", counter=" + updateCntr
+                                + ", size=" + size + "]");
                 }
                 finally {
                     pageMem.readUnlock(grp.groupId(), partMetaId, partMetaPage);
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteSpeedBasedThrottle.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteSpeedBasedThrottle.java
index c2a2dcb..d39b50c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteSpeedBasedThrottle.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteSpeedBasedThrottle.java
@@ -295,7 +295,7 @@ public class PagesWriteSpeedBasedThrottle implements PagesWriteThrottlePolicy {
         if (weight <= WARN_THRESHOLD)
             return;
 
-        if (prevWarnTime.compareAndSet(prevWarningNs, curNs)) {
+        if (prevWarnTime.compareAndSet(prevWarningNs, curNs) && log.isInfoEnabled()) {
             String msg = String.format("Throttling is applied to page modifications " +
                     "[percentOfPartTime=%.2f, markDirty=%d pages/sec, checkpointWrite=%d pages/sec, " +
                     "estIdealMarkDirty=%d pages/sec, curDirty=%.2f, maxDirty=%.2f, avgParkTime=%d ns, " +
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/scanner/PrintToLogHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/scanner/PrintToLogHandler.java
index 848acb9..551e4df 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/scanner/PrintToLogHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/scanner/PrintToLogHandler.java
@@ -63,7 +63,8 @@ class PrintToLogHandler implements ScannerHandler {
 
         resultString = null;
 
-        log.info(msg);
+        if (log.isInfoEnabled())
+            log.info(msg);
     }
 
     /**
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/verify/VerifyBackupPartitionsDumpTask.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/verify/VerifyBackupPartitionsDumpTask.java
index 30433fb..0973b89 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/verify/VerifyBackupPartitionsDumpTask.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/verify/VerifyBackupPartitionsDumpTask.java
@@ -178,14 +178,16 @@ public class VerifyBackupPartitionsDumpTask extends ComputeTaskAdapter<VisorIdle
 
         File out = new File(workDir, IDLE_DUMP_FILE_PREFIX + LocalDateTime.now().format(TIME_FORMATTER) + ".txt");
 
-        ignite.log().info("IdleVerifyDumpTask will write output to " + out.getAbsolutePath());
+        if (ignite.log().isInfoEnabled())
+            ignite.log().info("IdleVerifyDumpTask will write output to " + out.getAbsolutePath());
 
         try (PrintWriter writer = new PrintWriter(new FileWriter(out))) {
             writeResult(partitions, conflictRes, skippedRecords, writer);
 
             writer.flush();
 
-            ignite.log().info("IdleVerifyDumpTask successfully written dump to '" + out.getAbsolutePath() + "'");
+            if (ignite.log().isInfoEnabled())
+                ignite.log().info("IdleVerifyDumpTask successfully written dump to '" + out.getAbsolutePath() + "'");
         }
         catch (IOException | IgniteException e) {
             ignite.log().error("Failed to write dump file: " + out.getAbsolutePath(), e);
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/baseline/autoadjust/BaselineAutoAdjustScheduler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/baseline/autoadjust/BaselineAutoAdjustScheduler.java
index 4815663..2ffacc3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/baseline/autoadjust/BaselineAutoAdjustScheduler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/baseline/autoadjust/BaselineAutoAdjustScheduler.java
@@ -165,12 +165,14 @@ class BaselineAutoAdjustScheduler {
             long lastScheduledTaskTime = totalEndTime - System.currentTimeMillis();
 
             if (lastScheduledTaskTime <= 0) {
-                log.info("Baseline auto-adjust will be executed right now.");
+                if (log.isInfoEnabled())
+                    log.info("Baseline auto-adjust will be executed right now.");
 
                 baselineAutoAdjustExecutor.execute(baselineAutoAdjustData);
             }
             else {
-                log.info("Baseline auto-adjust will be executed in '" + lastScheduledTaskTime + "' ms.");
+                if (log.isInfoEnabled())
+                    log.info("Baseline auto-adjust will be executed in '" + lastScheduledTaskTime + "' ms.");
 
                 endTime = calculateEndTime(lastScheduledTaskTime);
 
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheLockImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheLockImpl.java
index 2d65e73..04c533d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheLockImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheLockImpl.java
@@ -634,8 +634,9 @@ public final class GridCacheLockImpl extends AtomicDataStructureProxy<GridCacheL
                             }
                             catch (Exception e) {
                                 if (interruptAll) {
-                                    log.info("Node is stopped (or lock is broken in non-failover safe mode)," +
-                                        " aborting transaction.");
+                                    if (log.isInfoEnabled())
+                                        log.info("Node is stopped (or lock is broken in non-failover safe mode)," +
+                                            " aborting transaction.");
 
                                     // Abort this attempt to synchronize queue and start another one,
                                     // that will return immediately.
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/diagnostic/PageHistoryDiagnoster.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/diagnostic/PageHistoryDiagnoster.java
index e203924..d55f042 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/diagnostic/PageHistoryDiagnoster.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/diagnostic/PageHistoryDiagnoster.java
@@ -115,7 +115,8 @@ public class PageHistoryDiagnoster {
         @NotNull PageHistoryDiagnoster.DiagnosticPageBuilder builder
     ) throws IgniteCheckedException {
         if (walFolders == null) {
-            log.info("Skipping dump page history due to WAL not configured");
+            if (log.isInfoEnabled())
+                log.info("Skipping dump page history due to WAL not configured");
 
             return;
         }
@@ -151,7 +152,8 @@ public class PageHistoryDiagnoster {
         }
 
         if (descIdx == -1) {
-            log.info("Skipping dump page history due to can not reserve WAL segments: " + descToString(descs));
+            if (log.isInfoEnabled())
+                log.info("Skipping dump page history due to can not reserve WAL segments: " + descToString(descs));
 
             return;
         }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerProcessor.java
index 35feba1..36fe752 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/ClientListenerProcessor.java
@@ -108,7 +108,8 @@ public class ClientListenerProcessor extends GridProcessorAdapter {
 
         // Daemon node should not open client port
         if (cfg.isDaemon()) {
-            log.debug("Client connection configuration ignored for daemon node.");
+            if (log.isDebugEnabled())
+                log.debug("Client connection configuration ignored for daemon node.");
 
             return;
         }
@@ -543,7 +544,8 @@ public class ClientListenerProcessor extends GridProcessorAdapter {
 
                 srv.close(ses);
 
-                log.info("Client session has been dropped: " + clientConnectionDescription(ses, connCtx));
+                if (log.isInfoEnabled())
+                    log.info("Client session has been dropped: " + clientConnectionDescription(ses, connCtx));
             }
         }
 
@@ -568,7 +570,8 @@ public class ClientListenerProcessor extends GridProcessorAdapter {
 
                 srv.close(ses);
 
-                log.info("Client session has been dropped: " + clientConnectionDescription(ses, connCtx));
+                if (log.isInfoEnabled())
+                    log.info("Client session has been dropped: " + clientConnectionDescription(ses, connCtx));
 
                 return true;
             }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java
index 34a7368..d1971ea 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridJavaProcess.java
@@ -193,7 +193,7 @@ public final class GridJavaProcess {
 
         int exitVal = killProc.exitValue();
 
-        if (exitVal != 0)
+        if (exitVal != 0 && log.isInfoEnabled())
             log.info(String.format("Abnormal exit value of %s for pid %s", exitVal, pid));
 
         if (procKilledC != null)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteStopwatch.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteStopwatch.java
index 496212c..642756d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteStopwatch.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteStopwatch.java
@@ -138,19 +138,23 @@ public final class IgniteStopwatch {
     ) throws IgniteCheckedException {
         long start = System.currentTimeMillis();
 
-        log.info("Operation was started: operation = " + operationName);
+        if (log.isInfoEnabled())
+            log.info("Operation was started: " + operationName);
+
         try {
             operation.run();
         }
         catch (Throwable ex) {
-            log.info("Operation was failed: operation = " + operationName
-                + ", elapsedTime = " + (System.currentTimeMillis() - start) + " ms");
+            if (log.isInfoEnabled())
+                log.info("Operation failed [operation=" + operationName
+                    + ", elapsedTime=" + (System.currentTimeMillis() - start) + "ms]");
 
             throw ex;
         }
 
-        log.info("Operation was success: operation = " + operationName
-            + ", elapsedTime = " + (System.currentTimeMillis() - start) + " ms");
+        if (log.isInfoEnabled())
+            log.info("Operation succeeded [operation=" + operationName
+                + ", elapsedTime=" + (System.currentTimeMillis() - start) + "ms]");
     }
 
     /**
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
index 307ff9a..77bd521 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
@@ -2234,7 +2234,8 @@ class ClientImpl extends TcpDiscoveryImpl {
             if (log.isInfoEnabled()) {
                 for (ClusterNode node : getRemoteNodes()) {
                     if (node.id().equals(locNode.clientRouterNodeId())) {
-                        log.info("Router node: " + node);
+                        if (log.isInfoEnabled())
+                            log.info("Router node: " + node);
 
                         break;
                     }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/GridJobMasterLeaveAwareSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/GridJobMasterLeaveAwareSelfTest.java
index a6fee6b..f29ebff 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/GridJobMasterLeaveAwareSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/GridJobMasterLeaveAwareSelfTest.java
@@ -52,6 +52,7 @@ import org.apache.ignite.resources.LoggerResource;
 import org.apache.ignite.resources.TaskSessionResource;
 import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
+import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.apache.ignite.testframework.junits.common.GridCommonTest;
 import org.jetbrains.annotations.Nullable;
@@ -494,12 +495,7 @@ public class GridJobMasterLeaveAwareSelfTest extends GridCommonAbstractTest {
 
         assert invokeLatch.await(5000, MILLISECONDS);
 
-        try {
-            fut.get();
-        }
-        catch (IgniteException e) {
-            log.debug("Task failed: " + e);
-        }
+        GridTestUtils.assertThrows(log, () -> fut.get(), IgniteException.class, null);
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/MessageDirectTypeIdConflictTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/MessageDirectTypeIdConflictTest.java
index 07bb258..8f8f2ed 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/MessageDirectTypeIdConflictTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/communication/MessageDirectTypeIdConflictTest.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.managers.communication;
 
 import java.nio.ByteBuffer;
 
+import java.util.concurrent.Callable;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.plugin.AbstractTestPluginProvider;
@@ -73,7 +74,7 @@ public class MessageDirectTypeIdConflictTest extends GridCommonAbstractTest {
     @Test
     @SuppressWarnings({"RedundantThrows", "ThrowableNotThrown"})
     public void testRegisterMessageFactoryWithConflictDirectTypeId() throws Exception {
-        assertThrows(log, this::startGrid, IgniteCheckedException.class,
+        assertThrows(log, (Callable<Object>)this::startGrid, IgniteCheckedException.class,
                 "Message factory is already registered for direct type: " + MSG_DIRECT_TYPE);
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsBinaryMetadataAsyncWritingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsBinaryMetadataAsyncWritingTest.java
index 2289d4e..2003ade 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsBinaryMetadataAsyncWritingTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgnitePdsBinaryMetadataAsyncWritingTest.java
@@ -105,6 +105,8 @@ public class IgnitePdsBinaryMetadataAsyncWritingTest extends GridCommonAbstractT
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
+        super.beforeTest();
+
         stopAllGrids();
 
         cleanPersistenceDir();
@@ -118,6 +120,8 @@ public class IgnitePdsBinaryMetadataAsyncWritingTest extends GridCommonAbstractT
         stopAllGrids();
 
         cleanPersistenceDir();
+
+        super.afterTest();
     }
 
     /**
@@ -240,6 +244,8 @@ public class IgnitePdsBinaryMetadataAsyncWritingTest extends GridCommonAbstractT
 
         specialFileIOFactory = new FailingFileIOFactory(new RandomAccessFileIOFactory());
 
+        setRootLoggerDebugLevel();
+
         IgniteEx ig1 = startGrid(1);
 
         ig0.cluster().active(true);
@@ -324,14 +330,15 @@ public class IgnitePdsBinaryMetadataAsyncWritingTest extends GridCommonAbstractT
             (topVer, snd, msg) -> suppressException(fileWriteLatch::await)
         );
 
-        ListeningTestLogger listeningLog = new ListeningTestLogger(true, log);
+        ListeningTestLogger listeningLog = new ListeningTestLogger(log);
+
+        setRootLoggerDebugLevel();
+
         LogListener waitingForWriteLsnr = LogListener.matches("Waiting for write completion of").build();
         listeningLog.registerListener(waitingForWriteLsnr);
 
         startGrid(2);
 
-        listeningLog = null;
-
         ig0.cluster().active(true);
         IgniteCache cache0 = cl0.createCache(testCacheCfg);
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
index 52c14bc..d1bdf65 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
@@ -308,6 +308,8 @@ public class IgniteThrottlingUnitTest {
         AtomicInteger warnings = new AtomicInteger(0);
         IgniteLogger log = mock(IgniteLogger.class);
 
+        when(log.isInfoEnabled()).thenReturn(true);
+
         doAnswer(invocation -> {
             Object[] args = invocation.getArguments();
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/scanner/WalScannerTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/scanner/WalScannerTest.java
index 4ba50cd..088b1bf 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/scanner/WalScannerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/scanner/WalScannerTest.java
@@ -183,6 +183,8 @@ public class WalScannerTest {
 
         IgniteLogger log = mock(IgniteLogger.class);
 
+        when(log.isInfoEnabled()).thenReturn(true);
+
         ArgumentCaptor<String> valCapture = ArgumentCaptor.forClass(String.class);
         doNothing().when(log).info(valCapture.capture());
 
@@ -281,6 +283,8 @@ public class WalScannerTest {
 
         IgniteLogger log = mock(IgniteLogger.class);
 
+        when(log.isInfoEnabled()).thenReturn(true);
+
         ArgumentCaptor<String> valCapture = ArgumentCaptor.forClass(String.class);
         doNothing().when(log).info(valCapture.capture());
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousWithTransformerFailoverTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousWithTransformerFailoverTest.java
index b174f24..71686f3 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousWithTransformerFailoverTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousWithTransformerFailoverTest.java
@@ -156,7 +156,8 @@ public class CacheContinuousWithTransformerFailoverTest extends GridCommonAbstra
 
                 @Override public void onUpdated(Iterable<? extends Integer> evts) throws CacheEntryListenerException {
                     for (Integer evt : evts) {
-                        log.debug("" + evt);
+                        if (log.isDebugEnabled())
+                            log.debug("" + evt);
                     }
                 }
             });
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/DiscoveryDataDeserializationFailureHanderTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/DiscoveryDataDeserializationFailureHanderTest.java
index 90dacc7..e52d06f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/DiscoveryDataDeserializationFailureHanderTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/DiscoveryDataDeserializationFailureHanderTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.processors.cache.query.continuous;
 
+import java.util.concurrent.Callable;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import javax.cache.configuration.Factory;
@@ -70,7 +71,7 @@ public class DiscoveryDataDeserializationFailureHanderTest extends GridCommonAbs
             assertTrue(latch.await(5, TimeUnit.SECONDS));
         }
         finally {
-            GridTestUtils.assertThrows(log, fut::get, IgniteCheckedException.class, "Failed to start");
+            GridTestUtils.assertThrows(log, (Callable<Object>)fut::get, IgniteCheckedException.class, "Failed to start");
         }
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/failure/FailureProcessorLoggingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/failure/FailureProcessorLoggingTest.java
index 0c08036..a97ec1e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/failure/FailureProcessorLoggingTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/failure/FailureProcessorLoggingTest.java
@@ -50,7 +50,7 @@ public class FailureProcessorLoggingTest extends GridCommonAbstractTest {
 
         TestFailureHandler hnd = new TestFailureHandler(false);
 
-        testLog = new CustomTestLogger(false, log);
+        testLog = new CustomTestLogger(log);
 
         hnd.setIgnoredFailureTypes(ImmutableSet.of(FailureType.SYSTEM_CRITICAL_OPERATION_TIMEOUT, FailureType.SYSTEM_WORKER_BLOCKED));
 
@@ -150,11 +150,10 @@ public class FailureProcessorLoggingTest extends GridCommonAbstractTest {
         private String expThreadDumpMsg;
 
         /**
-         * @param dbg Dbg.
          * @param echo Echo.
          */
-        public CustomTestLogger(boolean dbg, @Nullable IgniteLogger echo) {
-            super(dbg, echo);
+        public CustomTestLogger(@Nullable IgniteLogger echo) {
+            super(echo);
         }
 
         /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/failure/FailureProcessorThreadDumpThrottlingTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/failure/FailureProcessorThreadDumpThrottlingTest.java
index fdf8c2c..027895a 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/failure/FailureProcessorThreadDumpThrottlingTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/failure/FailureProcessorThreadDumpThrottlingTest.java
@@ -41,7 +41,7 @@ import static org.apache.ignite.internal.util.IgniteUtils.THREAD_DUMP_MSG;
 @WithSystemProperty(key = IgniteSystemProperties.IGNITE_DUMP_THREADS_ON_FAILURE, value = "true")
 public class FailureProcessorThreadDumpThrottlingTest extends GridCommonAbstractTest {
     /** Test logger. */
-    private final ListeningTestLogger testLog = new ListeningTestLogger(true, log);
+    private final ListeningTestLogger testLog = new ListeningTestLogger(log);
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
index d0ee646..f799322 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
@@ -442,6 +442,29 @@ public final class GridTestUtils {
     }
 
     /**
+     * Checks whether runnable throws expected exception or not.
+     *
+     * @param log Logger (optional).
+     * @param run Runnable.
+     * @param cls Exception class.
+     * @param msg Exception message (optional). If provided exception message
+     *      and this message should be equal.
+     * @return Thrown throwable.
+     */
+    public static Throwable assertThrows(
+        @Nullable IgniteLogger log,
+        RunnableX run,
+        Class<? extends Throwable> cls,
+        @Nullable String msg
+    ) {
+        return assertThrows(log, () -> {
+            run.run();
+
+            return null;
+        }, cls, msg);
+    }
+
+    /**
      * Checks whether callable throws expected exception or not.
      *
      * @param log Logger (optional).
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/ListeningTestLogger.java b/modules/core/src/test/java/org/apache/ignite/testframework/ListeningTestLogger.java
index 096ef1f..955d512 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/ListeningTestLogger.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/ListeningTestLogger.java
@@ -22,6 +22,7 @@ import java.util.concurrent.CopyOnWriteArraySet;
 import java.util.function.Consumer;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.internal.util.typedef.X;
+import org.apache.ignite.testframework.junits.GridAbstractTest;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -31,11 +32,6 @@ import org.jetbrains.annotations.Nullable;
  */
 public class ListeningTestLogger implements IgniteLogger {
     /**
-     * If set to {@code true}, enables debug and trace log messages processing.
-     */
-    private final boolean dbg;
-
-    /**
      * Logger to echo all messages, limited by {@code dbg} flag.
      */
     private final IgniteLogger echo;
@@ -49,32 +45,52 @@ public class ListeningTestLogger implements IgniteLogger {
      * Default constructor.
      */
     public ListeningTestLogger() {
-        this(false);
+        this(null);
     }
 
     /**
-     * @param dbg If set to {@code true}, enables debug and trace log messages processing.
+     * @param dbg Ignored. For setting debug use {@link GridAbstractTest#setRootLoggerDebugLevel()}.
+     * @deprecated Use {@link #ListeningTestLogger()} instead.
      */
+    @Deprecated
     public ListeningTestLogger(boolean dbg) {
-        this(dbg, null);
+        this(null);
     }
 
     /**
-     * @param dbg If set to {@code true}, enables debug and trace log messages processing.
+     * @param dbg Ignored. For setting debug use {@link GridAbstractTest#setRootLoggerDebugLevel()}.
      * @param echo Logger to echo all messages, limited by {@code dbg} flag.
+     * @deprecated Use {@link #ListeningTestLogger(IgniteLogger)} instead.
      */
+    @Deprecated
     public ListeningTestLogger(boolean dbg, @Nullable IgniteLogger echo) {
-        this.dbg = dbg;
+        this(echo);
+    }
+
+    /**
+     * @param echo Logger to echo all messages, limited by {@code dbg} flag.
+     */
+    public ListeningTestLogger(@Nullable IgniteLogger echo) {
         this.echo = echo;
     }
 
     /**
-     * @param dbg If set to {@code true}, enables debug and trace log messages processing.
+     * @param dbg Ignored. For setting debug use {@link GridAbstractTest#setRootLoggerDebugLevel()}.
      * @param echo Logger to echo all messages, limited by {@code dbg} flag.
      * @param lsnrs LogListeners to register instantly.
+     * @deprecated Use {@link #ListeningTestLogger(IgniteLogger, LogListener...)} instead.
      */
+    @Deprecated
     public ListeningTestLogger(boolean dbg, @Nullable IgniteLogger echo, @NotNull LogListener... lsnrs) {
-        this(dbg, echo);
+        this(echo, lsnrs);
+    }
+
+    /**
+     * @param echo Logger to echo all messages, limited by {@code dbg} flag.
+     * @param lsnrs LogListeners to register instantly.
+     */
+    public ListeningTestLogger(@Nullable IgniteLogger echo, @NotNull LogListener... lsnrs) {
+        this(echo);
 
         for (LogListener lsnr : lsnrs)
             registerListener(lsnr);
@@ -140,9 +156,6 @@ public class ListeningTestLogger implements IgniteLogger {
 
     /** {@inheritDoc} */
     @Override public void trace(String msg) {
-        if (!dbg)
-            return;
-
         if (echo != null)
             echo.trace(msg);
 
@@ -151,9 +164,6 @@ public class ListeningTestLogger implements IgniteLogger {
 
     /** {@inheritDoc} */
     @Override public void debug(String msg) {
-        if (!dbg)
-            return;
-
         if (echo != null)
             echo.debug(msg);
 
@@ -192,12 +202,12 @@ public class ListeningTestLogger implements IgniteLogger {
 
     /** {@inheritDoc} */
     @Override public boolean isTraceEnabled() {
-        return dbg;
+        return echo != null && echo.isTraceEnabled();
     }
 
     /** {@inheritDoc} */
     @Override public boolean isDebugEnabled() {
-        return dbg;
+        return echo != null && echo.isDebugEnabled();
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
index da422af..e7992cf 100755
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
@@ -195,6 +195,9 @@ public abstract class GridAbstractTest extends JUnitAssertAware {
     /** */
     private static final transient Map<Class<?>, IgniteTestResources> tests = new ConcurrentHashMap<>();
 
+    /** Loggers with changed log level for test's purposes. */
+    private static final transient Map<Logger, Level> changedLevels = new ConcurrentHashMap<>();
+
     /** */
     protected static final String DEFAULT_CACHE_NAME = "default";
 
@@ -328,7 +331,13 @@ public abstract class GridAbstractTest extends JUnitAssertAware {
      * @throws Exception If failed.
      */
     protected void afterTest() throws Exception {
-        // No-op.
+        try {
+            for (Logger logger : changedLevels.keySet())
+                logger.setLevel(changedLevels.get(logger));
+        }
+        finally {
+            changedLevels.clear();
+        }
     }
 
     /**
@@ -436,6 +445,18 @@ public abstract class GridAbstractTest extends JUnitAssertAware {
     }
 
     /**
+     * Sets the log level for root logger ({@link #log}) to {@link Level#DEBUG}. The log level will be resetted to
+     * default in {@link #afterTest()}.
+     */
+    protected final void setRootLoggerDebugLevel() {
+        Logger logger = Logger.getRootLogger();
+
+        assertNull(logger + " level: " + Level.DEBUG, changedLevels.put(logger, logger.getLevel()));
+
+        logger.setLevel(Level.DEBUG);
+    }
+
+    /**
      * Resets log4j programmatically.
      *
      * @param log4jLevel Level.
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLogger.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLogger.java
index 2ac32ce..4464828 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLogger.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLogger.java
@@ -459,6 +459,8 @@ public class GridTestLog4jLogger implements IgniteLogger, LoggerNodeIdAware {
         if (!impl.isTraceEnabled())
             warning("Logging at TRACE level without checking if TRACE level is enabled: " + msg);
 
+            assert impl.isTraceEnabled() : "Logging at TRACE level without checking if TRACE level is enabled: " + msg;
+
         impl.trace(msg);
     }
 
@@ -467,6 +469,8 @@ public class GridTestLog4jLogger implements IgniteLogger, LoggerNodeIdAware {
         if (!impl.isDebugEnabled())
             warning("Logging at DEBUG level without checking if DEBUG level is enabled: " + msg);
 
+        assert impl.isDebugEnabled() : "Logging at DEBUG level without checking if DEBUG level is enabled: " + msg;
+
         impl.debug(msg);
     }
 
@@ -475,6 +479,8 @@ public class GridTestLog4jLogger implements IgniteLogger, LoggerNodeIdAware {
         if (!impl.isInfoEnabled())
             warning("Logging at INFO level without checking if INFO level is enabled: " + msg);
 
+        assert impl.isInfoEnabled() : "Logging at INFO level without checking if INFO level is enabled: " + msg;
+
         impl.info(msg);
     }
 
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLoggerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLoggerSelfTest.java
new file mode 100644
index 0000000..0e64c7a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLoggerSelfTest.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.testframework.junits.logger;
+
+import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.GridTestUtils.RunnableX;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import static java.lang.String.format;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * Checks that assertion error will be thrown, if logging for the level disabled and log message on this level was invoked.
+ */
+@RunWith(JUnit4.class)
+public class GridTestLog4jLoggerSelfTest {
+    /** Logger message. */
+    private static final String LOG_MESSAGE = "TEST MESSAGE";
+
+    /** Assertion message formatter. */
+    private static final String ASSERTION_FORMAT_MSG = "Logging at %s level without checking if %s level is enabled: " + LOG_MESSAGE;
+
+    /** Logger. */
+    private static final GridTestLog4jLogger LOGGER = new GridTestLog4jLogger();
+
+    /** Default root level. */
+    private static final Level defaultRootLevel = Logger.getRootLogger().getLevel();
+
+    /** */
+    @BeforeClass
+    public static void beforeTests() {
+        Logger.getRootLogger().setLevel(Level.WARN);
+    }
+
+    /** */
+    @AfterClass
+    public static void afterTests() {
+        Logger.getRootLogger().setLevel(defaultRootLevel);
+
+        assertEquals(defaultRootLevel, Logger.getRootLogger().getLevel());
+    }
+
+    /** */
+    @Test
+    public void testDebug() {
+        assertFalse(LOGGER.isDebugEnabled());
+
+        tryLog(() -> LOGGER.debug(LOG_MESSAGE), Level.DEBUG);
+    }
+
+    /** */
+    @Test
+    public void testInfo() {
+        assertFalse(LOGGER.isInfoEnabled());
+
+        tryLog(() -> LOGGER.info(LOG_MESSAGE), Level.INFO);
+    }
+
+    /** */
+    @Test
+    public void testTrace() {
+        assertFalse(LOGGER.isTraceEnabled());
+
+        tryLog(() -> LOGGER.trace(LOG_MESSAGE), Level.TRACE);
+    }
+
+    /** */
+    private static void tryLog(RunnableX clo, Level level) {
+        String assertionMsg = format(ASSERTION_FORMAT_MSG, level.toString(), level.toString());
+
+        GridTestUtils.assertThrows(null, clo, AssertionError.class, assertionMsg);
+    }
+}
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteLangSelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteLangSelfTestSuite.java
index 5934cbf..b43ff63 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteLangSelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteLangSelfTestSuite.java
@@ -42,6 +42,7 @@ import org.apache.ignite.lang.utils.GridLeanMapSelfTest;
 import org.apache.ignite.lang.utils.GridListSetSelfTest;
 import org.apache.ignite.lang.utils.GridStripedLockSelfTest;
 import org.apache.ignite.lang.utils.IgniteOffheapReadWriteLockSelfTest;
+import org.apache.ignite.testframework.junits.logger.GridTestLog4jLoggerSelfTest;
 import org.apache.ignite.util.GridConcurrentLinkedDequeSelfTest;
 import org.apache.ignite.util.GridConcurrentLinkedHashMapMultiThreadedSelfTest;
 import org.junit.runner.RunWith;
@@ -83,6 +84,8 @@ import org.junit.runners.Suite;
 
     IgniteOffheapReadWriteLockSelfTest.class,
 
+    GridTestLog4jLoggerSelfTest.class,
+
     // Consistent hash tests.
     GridConsistentHashSelfTest.class,
 })
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/SchemaManager.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/SchemaManager.java
index 2a68a6f..8e10558 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/SchemaManager.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/SchemaManager.java
@@ -220,8 +220,10 @@ public class SchemaManager {
         boolean disabled = IgniteSystemProperties.getBoolean(IgniteSystemProperties.IGNITE_SQL_DISABLE_SYSTEM_VIEWS);
 
         if (disabled) {
-            log.info("SQL system views will not be created because they are disabled (see " +
-                IgniteSystemProperties.IGNITE_SQL_DISABLE_SYSTEM_VIEWS + " system property)");
+            if (log.isInfoEnabled()) {
+                log.info("SQL system views will not be created because they are disabled (see " +
+                    IgniteSystemProperties.IGNITE_SQL_DISABLE_SYSTEM_VIEWS + " system property)");
+            }
 
             return;
         }
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
index fd2d400..2638aa5 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
@@ -668,7 +668,7 @@ public class GridMapQueryExecutor {
 
                     if (log.isDebugEnabled())
                         U.warn(log, errMsg, err);
-                    else
+                    else if (log.isInfoEnabled())
                         log.info(errMsg);
                 }
                 else
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/ReducePartitionMapper.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/ReducePartitionMapper.java
index a48c989..b748ef2 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/ReducePartitionMapper.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/ReducePartitionMapper.java
@@ -426,10 +426,12 @@ public class ReducePartitionMapper {
                     continue;
                 }
                 else if (!F.isEmpty(dataNodes(cctx.groupId(), NONE))) {
-                    logRetry("Failed to calculate nodes for SQL query (partition has no owners, but corresponding " +
-                        "cache group has data nodes) [cacheIds=" + cacheIds +
-                        ", cacheName=" + cctx.name() + ", cacheId=" + cctx.cacheId() + ", part=" + p +
-                        ", cacheGroupId=" + cctx.groupId() + ']');
+                    if (log.isInfoEnabled()) {
+                        logRetry("Failed to calculate nodes for SQL query (partition has no owners, but corresponding " +
+                            "cache group has data nodes) [cacheIds=" + cacheIds +
+                            ", cacheName=" + cctx.name() + ", cacheId=" + cctx.cacheId() + ", part=" + p +
+                            ", cacheGroupId=" + cctx.groupId() + ']');
+                    }
 
                     return null; // Retry.
                 }
@@ -461,10 +463,12 @@ public class ReducePartitionMapper {
 
                     if (F.isEmpty(owners)) {
                         if (!F.isEmpty(dataNodes(extraCctx.groupId(), NONE))) {
-                            logRetry("Failed to calculate nodes for SQL query (partition has no owners, but " +
-                                "corresponding cache group has data nodes) [ cacheIds=" + cacheIds + ", cacheName=" + extraCctx.name() +
-                                ", cacheId=" + extraCctx.cacheId() + ", part=" + p +
-                                ", cacheGroupId=" + extraCctx.groupId() + ']');
+                            if (log.isInfoEnabled()) {
+                                logRetry("Failed to calculate nodes for SQL query (partition has no owners, but " +
+                                    "corresponding cache group has data nodes) [ cacheIds=" + cacheIds + ", cacheName=" + extraCctx.name() +
+                                    ", cacheId=" + extraCctx.cacheId() + ", part=" + p +
+                                    ", cacheGroupId=" + extraCctx.groupId() + ']');
+                            }
 
                             return null; // Retry.
                         }
@@ -479,10 +483,12 @@ public class ReducePartitionMapper {
                         partLocs[p].retainAll(owners); // Intersection of owners.
 
                         if (partLocs[p].isEmpty()) {
-                            logRetry("Failed to calculate nodes for SQL query (caches have no common data nodes for " +
-                                "partition) [cacheIds=" + cacheIds +
-                                ", lastCacheName=" + extraCctx.name() + ", lastCacheId=" + extraCctx.cacheId() +
-                                ", part=" + p + ']');
+                            if (log.isInfoEnabled()) {
+                                logRetry("Failed to calculate nodes for SQL query (caches have no common data nodes for " +
+                                    "partition) [cacheIds=" + cacheIds +
+                                    ", lastCacheName=" + extraCctx.name() + ", lastCacheId=" + extraCctx.cacheId() +
+                                    ", part=" + p + ']');
+                            }
 
                             return null; // Intersection is empty -> retry.
                         }
@@ -511,10 +517,12 @@ public class ReducePartitionMapper {
                     partLoc.retainAll(dataNodes);
 
                     if (partLoc.isEmpty()) {
-                        logRetry("Failed to calculate nodes for SQL query (caches have no common data nodes for " +
-                            "partition) [cacheIds=" + cacheIds +
-                            ", lastReplicatedCacheName=" + extraCctx.name() +
-                            ", lastReplicatedCacheId=" + extraCctx.cacheId() + ", part=" + part + ']');
+                        if (log.isInfoEnabled()) {
+                            logRetry("Failed to calculate nodes for SQL query (caches have no common data nodes for " +
+                                "partition) [cacheIds=" + cacheIds +
+                                ", lastReplicatedCacheName=" + extraCctx.name() +
+                                ", lastReplicatedCacheId=" + extraCctx.cacheId() + ", part=" + part + ']');
+                        }
 
                         return null; // Retry.
                     }
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/client/IgniteDataStreamerTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/client/IgniteDataStreamerTest.java
index 9ab3dc6..2e63fdb 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/client/IgniteDataStreamerTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/client/IgniteDataStreamerTest.java
@@ -94,8 +94,10 @@ public class IgniteDataStreamerTest extends GridCommonAbstractTest {
                 //This should not throw any exception.
                 Object res = fut.get(WAIT_TIMEOUT);
 
-                //Printing future result to log to prevent jvm optimization
-                log.debug(res == null ? null : res.toString());
+                if (log.isDebugEnabled()) {
+                    //Printing future result to log to prevent jvm optimization
+                    log.debug(String.valueOf(res));
+                }
             }
 
             assertTrue(cache.size(ALL) == DATA_SIZE);
diff --git a/modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java b/modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
index 838ddfe..1453e0c 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/sqltests/BaseSqlTest.java
@@ -396,7 +396,8 @@ public class BaseSqlTest extends AbstractIndexingCommonTest {
 
                 String explanation = (String)res.get(0).get(0);
 
-                log.debug("Node: " + node.name() + ": Execution plan for query " + qry + ":\n" + explanation);
+                if (log.isDebugEnabled())
+                    log.debug("Node: " + node.name() + ": Execution plan for query " + qry + ":\n" + explanation);
             }
             catch (Exception exc) {
                 log.error("Ignoring exception gotten explaining query : " + qry, exc);
diff --git a/modules/kafka/src/main/java/org/apache/ignite/stream/kafka/KafkaStreamer.java b/modules/kafka/src/main/java/org/apache/ignite/stream/kafka/KafkaStreamer.java
index 39d2e50..02dbedd 100644
--- a/modules/kafka/src/main/java/org/apache/ignite/stream/kafka/KafkaStreamer.java
+++ b/modules/kafka/src/main/java/org/apache/ignite/stream/kafka/KafkaStreamer.java
@@ -181,7 +181,8 @@ public class KafkaStreamer<K, V> extends StreamAdapter<ConsumerRecord, K, V> {
                 }
             }
             catch (WakeupException we) {
-                log.info("Consumer is being stopped.");
+                if (log.isInfoEnabled())
+                    log.info("Consumer is being stopped.");
             }
             catch (KafkaException ke) {
                 log.error("Kafka error", ke);
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/math/Tracer.java b/modules/ml/src/main/java/org/apache/ignite/ml/math/Tracer.java
index 62c3c21..387c7d8 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/math/Tracer.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/math/Tracer.java
@@ -104,7 +104,8 @@ public class Tracer {
     public static void showAscii(Vector vec, IgniteLogger log, String fmt) {
         String cls = vec.getClass().getSimpleName();
 
-        log.info(String.format(LOCALE, "%s(%d) [%s]", cls, vec.size(), mkString(vec, fmt)));
+        if (log.isInfoEnabled())
+            log.info(String.format(LOCALE, "%s(%d) [%s]", cls, vec.size(), mkString(vec, fmt)));
     }
 
     /**
@@ -211,10 +212,12 @@ public class Tracer {
         int rows = mtx.rowSize();
         int cols = mtx.columnSize();
 
-        log.info(String.format(LOCALE, "%s(%dx%d)", cls, rows, cols));
+        if (log.isInfoEnabled()) {
+            log.info(String.format(LOCALE, "%s(%dx%d)", cls, rows, cols));
 
-        for (int row = 0; row < rows; row++)
-            log.info(rowStr(mtx, row, fmt));
+            for (int row = 0; row < rows; row++)
+                log.info(rowStr(mtx, row, fmt));
+        }
     }
 
     /**
diff --git a/modules/ml/src/main/java/org/apache/ignite/ml/util/plugin/MLPluginProvider.java b/modules/ml/src/main/java/org/apache/ignite/ml/util/plugin/MLPluginProvider.java
index de039fb..f766b89 100644
--- a/modules/ml/src/main/java/org/apache/ignite/ml/util/plugin/MLPluginProvider.java
+++ b/modules/ml/src/main/java/org/apache/ignite/ml/util/plugin/MLPluginProvider.java
@@ -172,7 +172,8 @@ public class MLPluginProvider implements PluginProvider<MLPluginConfiguration> {
 
         ignite.getOrCreateCache(storageCfg);
 
-        log.info("ML model storage is ready");
+        if (log.isInfoEnabled())
+            log.info("ML model storage is ready");
     }
 
     /**
@@ -190,6 +191,7 @@ public class MLPluginProvider implements PluginProvider<MLPluginConfiguration> {
 
         ignite.getOrCreateCache(storageCfg);
 
-        log.info("ML model descriptor storage is ready");
+        if (log.isInfoEnabled())
+            log.info("ML model descriptor storage is ready");
     }
 }
diff --git a/modules/osgi/src/main/java/org/apache/ignite/osgi/IgniteAbstractOsgiContextActivator.java b/modules/osgi/src/main/java/org/apache/ignite/osgi/IgniteAbstractOsgiContextActivator.java
index dc491e9..289d86f 100644
--- a/modules/osgi/src/main/java/org/apache/ignite/osgi/IgniteAbstractOsgiContextActivator.java
+++ b/modules/osgi/src/main/java/org/apache/ignite/osgi/IgniteAbstractOsgiContextActivator.java
@@ -117,7 +117,8 @@ public abstract class IgniteAbstractOsgiContextActivator implements BundleActiva
 
         log = ignite.log();
 
-        log.info("Started Ignite from OSGi Activator [name=" + ignite.name() + ']');
+        if (log.isInfoEnabled())
+            log.info("Started Ignite from OSGi Activator [name=" + ignite.name() + ']');
 
         // Add into Ignite's OSGi registry.
         IgniteOsgiUtils.classloaders().put(ignite, clsLdr);
diff --git a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
index 8822e5c..3ccf2de 100644
--- a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
+++ b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
@@ -1353,7 +1353,7 @@ public class ZookeeperDiscoveryImpl {
                 log.info("Discovery coordinator already exists, watch for previous server node [" +
                     "locId=" + locNode.id() +
                     ", watchPath=" + prevE.getValue() + ']');
-             }
+            }
 
             PreviousNodeWatcher watcher = new ServerPreviousNodeWatcher(rtState);