PARQUET-423: Replace old Log class with SLF4J Logging

And make writing files less noisy

Author: Niels Basjes <nbas...@bol.com>

Closes #369 from nielsbasjes/PARQUET-423-2 and squashes the following commits:

b31e30f [Niels Basjes] Merge branch 'master' of github.com:apache/parquet-mr 
into PARQUET-423-2
2d4db4b [Niels Basjes] Merge branch 'PARQUET-423-2' of 
github.com:nielsbasjes/parquet-mr into PARQUET-423-2
49fcaa7 [Niels Basjes] PARQUET-423: Remove debug logging statements in high 
performance sections during build time
aaaf4a6 [Niels Basjes] Merge branch 'PARQUET-423-2' of 
github.com:nielsbasjes/parquet-mr into PARQUET-423-2
745666e [Niels Basjes] Undo needless change
94e0c7a [Niels Basjes] PARQUET-423: Further optimize logging performance
b72f924 [Niels Basjes] PARQUET-423: Improved the performance
cb7eb61 [Niels Basjes] PARQUET-423: Workaround AVRO errors
7d161b3 [Niels Basjes] PARQUET-423: Restore the old (obsolete) Log class
05d6a47 [Niels Basjes] PARQUET-423: Replace old Log class with SLF4J Logging
692ebfb [Niels Basjes] Undo needless change
f1ede3d [Niels Basjes] PARQUET-423: Further optimize logging performance
a0c6b59 [Niels Basjes] PARQUET-423: Improved the performance
67bef9b [Niels Basjes] PARQUET-423: Workaround AVRO errors
87cd64f [Niels Basjes] PARQUET-423: Restore the old (obsolete) Log class
96d97d5 [Niels Basjes] PARQUET-423: Replace old Log class with SLF4J Logging


Project: http://git-wip-us.apache.org/repos/asf/parquet-mr/repo
Commit: http://git-wip-us.apache.org/repos/asf/parquet-mr/commit/8e2009b8
Tree: http://git-wip-us.apache.org/repos/asf/parquet-mr/tree/8e2009b8
Diff: http://git-wip-us.apache.org/repos/asf/parquet-mr/diff/8e2009b8

Branch: refs/heads/parquet-1.8.x
Commit: 8e2009b89a1266fe1071bbd5678878f54787497b
Parents: 6294fc0
Author: Ryan Blue <b...@apache.org>
Authored: Fri Jan 6 14:24:25 2017 -0800
Committer: Ryan Blue <b...@apache.org>
Committed: Mon Jan 9 16:54:54 2017 -0800

----------------------------------------------------------------------
 parquet-avro/pom.xml                            |  7 +++
 .../parquet/avro/TestInputOutputFormat.java     |  9 ++--
 .../avro/TestReflectInputOutputFormat.java      |  9 ++--
 .../avro/TestSpecificInputOutputFormat.java     |  9 ++--
 .../apache/parquet/CorruptDeltaByteArrays.java  | 11 ++--
 .../org/apache/parquet/CorruptStatistics.java   |  4 +-
 .../parquet/column/impl/ColumnReaderImpl.java   | 20 ++++----
 .../parquet/column/impl/ColumnWriterV1.java     | 12 +++--
 .../parquet/column/impl/ColumnWriterV2.java     | 12 +++--
 .../bitpacking/BitPackingValuesReader.java      |  7 +--
 .../bitpacking/ByteBitPackingValuesReader.java  |  7 +--
 .../column/values/boundedint/BitWriter.java     | 21 ++++----
 .../boundedint/BoundedIntValuesReader.java      | 14 ++---
 .../boundedint/BoundedIntValuesWriter.java      |  9 ++--
 .../DeltaLengthByteArrayValuesReader.java       |  8 +--
 .../DeltaLengthByteArrayValuesWriter.java       |  7 +--
 .../dictionary/DictionaryValuesReader.java      | 11 ++--
 .../dictionary/DictionaryValuesWriter.java      | 11 ++--
 .../values/plain/BinaryPlainValuesReader.java   |  8 +--
 .../values/plain/BooleanPlainValuesReader.java  |  8 +--
 .../FixedLenByteArrayPlainValuesReader.java     |  9 ++--
 .../FixedLenByteArrayPlainValuesWriter.java     |  7 +--
 .../column/values/plain/PlainValuesReader.java  |  9 ++--
 .../column/values/plain/PlainValuesWriter.java  |  7 +--
 .../rle/RunLengthBitPackingHybridDecoder.java   | 12 ++---
 .../rle/RunLengthBitPackingHybridEncoder.java   | 12 ++---
 .../org/apache/parquet/example/data/Group.java  | 10 ++--
 .../parquet/filter2/compat/FilterCompat.java    |  9 ++--
 .../org/apache/parquet/io/BaseRecordReader.java | 28 +++++-----
 .../java/org/apache/parquet/io/ColumnIO.java    |  3 --
 .../org/apache/parquet/io/GroupColumnIO.java    |  5 +-
 .../org/apache/parquet/io/MessageColumnIO.java  | 54 +++++++++++---------
 .../io/RecordConsumerLoggingWrapper.java        | 49 +++++++++---------
 .../parquet/io/RecordReaderImplementation.java  |  7 +--
 .../parquet/io/ValidatingRecordConsumer.java    | 10 ++--
 .../parquet/schema/MessageTypeParser.java       |  5 +-
 .../parquet/column/mem/TestMemColumn.java       |  9 ++--
 .../parquet/column/page/mem/MemPageReader.java  |  8 +--
 .../parquet/column/page/mem/MemPageStore.java   | 17 +++---
 .../parquet/column/page/mem/MemPageWriter.java  | 27 +++++-----
 .../values/bitpacking/TestBitPackingColumn.java | 11 ++--
 .../java/org/apache/parquet/io/PerfTest.java    |  6 ---
 .../org/apache/parquet/io/TestColumnIO.java     |  7 +--
 .../java/org/apache/parquet/Closeables.java     |  5 +-
 .../org/apache/parquet/bytes/BytesUtils.java    |  7 +--
 .../test/java/org/apache/parquet/TestLog.java   | 31 -----------
 .../org/apache/parquet/bytes/BytesInput.java    | 26 +++++-----
 .../bytes/CapacityByteArrayOutputStream.java    | 10 ++--
 .../bitpacking/ByteBasedBitPackingEncoder.java  | 14 ++---
 .../values/bitpacking/TestBitPacking.java       |  9 ++--
 .../values/bitpacking/TestByteBitPacking.java   | 32 ++++++------
 .../values/bitpacking/TestLemireBitPacking.java | 17 +++---
 .../dictionarylevel/DictionaryFilter.java       |  7 +--
 .../converter/ParquetMetadataConverter.java     |  9 ++--
 .../hadoop/ColumnChunkPageReadStore.java        |  5 +-
 .../hadoop/ColumnChunkPageWriteStore.java       | 10 ++--
 .../hadoop/InternalParquetRecordReader.java     | 28 +++++-----
 .../hadoop/InternalParquetRecordWriter.java     | 14 ++---
 .../org/apache/parquet/hadoop/LruCache.java     | 34 ++++++------
 .../apache/parquet/hadoop/MemoryManager.java    |  7 +--
 .../parquet/hadoop/ParquetFileReader.java       | 30 +++++------
 .../parquet/hadoop/ParquetFileWriter.java       | 41 +++++++--------
 .../parquet/hadoop/ParquetInputFormat.java      | 30 +++++------
 .../parquet/hadoop/ParquetOutputCommitter.java  |  5 +-
 .../parquet/hadoop/ParquetOutputFormat.java     | 28 +++++-----
 .../parquet/hadoop/ParquetRecordReader.java     |  5 +-
 .../hadoop/UnmaterializableRecordCounter.java   |  5 +-
 .../parquet/hadoop/codec/CodecConfig.java       | 18 +++----
 .../parquet/hadoop/util/HadoopStreams.java      |  6 ++-
 .../parquet/hadoop/util/SerializationUtil.java  |  5 +-
 .../parquet/hadoop/TestParquetFileWriter.java   |  7 +--
 .../hadoop/example/TestInputOutputFormat.java   |  9 ++--
 .../src/test/resources/log4j.properties         | 24 +++++++++
 .../parquet/hive/internal/Hive010Binding.java   |  5 +-
 .../parquet/hive/internal/Hive012Binding.java   |  5 +-
 .../apache/parquet/hive/HiveBindingFactory.java | 15 +++---
 .../io/parquet/MapredParquetOutputFormat.java   |  8 +--
 .../read/ParquetRecordReaderWrapper.java        |  6 +--
 .../write/ParquetRecordWriterWrapper.java       | 10 ++--
 .../org/apache/parquet/pig/ParquetLoader.java   | 28 +++++-----
 .../apache/parquet/pig/PigSchemaConverter.java  | 18 +++----
 .../apache/parquet/pig/TupleReadSupport.java    |  5 +-
 .../java/org/apache/parquet/pig/PerfTest2.java  |  8 ++-
 .../parquet/pig/TestTupleRecordConsumer.java    | 13 ++---
 .../parquet/pig/TupleConsumerPerfTest.java      |  1 -
 .../apache/parquet/proto/ProtoReadSupport.java  | 11 ++--
 .../parquet/proto/ProtoSchemaConverter.java     |  5 +-
 .../apache/parquet/proto/ProtoWriteSupport.java |  5 +-
 .../parquet/proto/utils/WriteUsingMR.java       |  9 ++--
 .../thrift/AbstractThriftWriteSupport.java      |  5 +-
 .../hadoop/thrift/ThriftReadSupport.java        |  9 ++--
 .../parquet/thrift/ParquetReadProtocol.java     | 47 +++++++++--------
 .../parquet/thrift/ParquetWriteProtocol.java    | 48 ++++++++---------
 .../apache/parquet/thrift/ThriftMetaData.java   |  5 +-
 .../projection/StrictFieldProjectionFilter.java |  5 +-
 .../hadoop/thrift/TestInputOutputFormat.java    |  9 ++--
 ...stParquetToThriftReadWriteAndProjection.java |  7 +--
 .../thrift/TestThriftToParquetFileWriter.java   |  8 +--
 .../parquet/thrift/TestParquetReadProtocol.java |  7 +--
 .../thrift/TestParquetWriteProtocol.java        | 13 ++---
 pom.xml                                         |  1 -
 101 files changed, 683 insertions(+), 636 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-avro/pom.xml
----------------------------------------------------------------------
diff --git a/parquet-avro/pom.xml b/parquet-avro/pom.xml
index b34838f..5eaf1e0 100644
--- a/parquet-avro/pom.xml
+++ b/parquet-avro/pom.xml
@@ -63,6 +63,13 @@
       <artifactId>hadoop-client</artifactId>
       <version>${hadoop.version}</version>
       <scope>provided</scope>
+      <exclusions>
+        <exclusion>
+          <!-- this changes logger used in testing -->
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-log4j12</artifactId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <dependency>
       <groupId>com.google.guava</groupId>

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-avro/src/test/java/org/apache/parquet/avro/TestInputOutputFormat.java
----------------------------------------------------------------------
diff --git 
a/parquet-avro/src/test/java/org/apache/parquet/avro/TestInputOutputFormat.java 
b/parquet-avro/src/test/java/org/apache/parquet/avro/TestInputOutputFormat.java
index 36c090f..7ba6c9b 100644
--- 
a/parquet-avro/src/test/java/org/apache/parquet/avro/TestInputOutputFormat.java
+++ 
b/parquet-avro/src/test/java/org/apache/parquet/avro/TestInputOutputFormat.java
@@ -36,14 +36,15 @@ import org.apache.hadoop.mapreduce.Mapper;
 import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
 import org.junit.Test;
-import org.apache.parquet.Log;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.lang.Thread.sleep;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
 public class TestInputOutputFormat {
-  private static final Log LOG = Log.getLog(TestInputOutputFormat.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(TestInputOutputFormat.class);
 
   private static Schema avroSchema;
   static {
@@ -132,10 +133,10 @@ public class TestInputOutputFormat {
   private void waitForJob(Job job) throws Exception {
     job.submit();
     while (!job.isComplete()) {
-      LOG.debug("waiting for job " + job.getJobName());
+      LOG.debug("waiting for job {}", job.getJobName());
       sleep(100);
     }
-    LOG.info("status for job " + job.getJobName() + ": " + (job.isSuccessful() 
? "SUCCESS" : "FAILURE"));
+    LOG.info("status for job {}: {}", job.getJobName(), (job.isSuccessful() ? 
"SUCCESS" : "FAILURE"));
     if (!job.isSuccessful()) {
       throw new RuntimeException("job failed " + job.getJobName());
     }

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-avro/src/test/java/org/apache/parquet/avro/TestReflectInputOutputFormat.java
----------------------------------------------------------------------
diff --git 
a/parquet-avro/src/test/java/org/apache/parquet/avro/TestReflectInputOutputFormat.java
 
b/parquet-avro/src/test/java/org/apache/parquet/avro/TestReflectInputOutputFormat.java
index 3e1d32e..729f24a 100644
--- 
a/parquet-avro/src/test/java/org/apache/parquet/avro/TestReflectInputOutputFormat.java
+++ 
b/parquet-avro/src/test/java/org/apache/parquet/avro/TestReflectInputOutputFormat.java
@@ -37,7 +37,6 @@ import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.Mapper;
 import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
-import org.apache.parquet.Log;
 import org.apache.parquet.column.ColumnReader;
 import org.apache.parquet.filter.ColumnPredicates;
 import org.apache.parquet.filter.ColumnRecordFilter;
@@ -46,6 +45,8 @@ import org.apache.parquet.filter.UnboundRecordFilter;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static java.lang.Thread.sleep;
 import static org.junit.Assert.assertArrayEquals;
@@ -55,7 +56,7 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 public class TestReflectInputOutputFormat {
-  private static final Log LOG = 
Log.getLog(TestReflectInputOutputFormat.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(TestReflectInputOutputFormat.class);
 
 
   public static class Service {
@@ -477,10 +478,10 @@ public class TestReflectInputOutputFormat {
   private void waitForJob(Job job) throws Exception {
     job.submit();
     while (!job.isComplete()) {
-      LOG.debug("waiting for job " + job.getJobName());
+      LOG.debug("waiting for job {}", job.getJobName());
       sleep(100);
     }
-    LOG.info("status for job " + job.getJobName() + ": " + (job.isSuccessful() 
? "SUCCESS" : "FAILURE"));
+    LOG.info("status for job {}: {}", job.getJobName(), (job.isSuccessful() ? 
"SUCCESS" : "FAILURE"));
     if (!job.isSuccessful()) {
       throw new RuntimeException("job failed " + job.getJobName());
     }

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-avro/src/test/java/org/apache/parquet/avro/TestSpecificInputOutputFormat.java
----------------------------------------------------------------------
diff --git 
a/parquet-avro/src/test/java/org/apache/parquet/avro/TestSpecificInputOutputFormat.java
 
b/parquet-avro/src/test/java/org/apache/parquet/avro/TestSpecificInputOutputFormat.java
index 17a0af1..a0b58f3 100644
--- 
a/parquet-avro/src/test/java/org/apache/parquet/avro/TestSpecificInputOutputFormat.java
+++ 
b/parquet-avro/src/test/java/org/apache/parquet/avro/TestSpecificInputOutputFormat.java
@@ -39,15 +39,16 @@ import 
org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.apache.parquet.Log;
 import org.apache.parquet.column.ColumnReader;
 import org.apache.parquet.filter.ColumnPredicates;
 import org.apache.parquet.filter.ColumnRecordFilter;
 import org.apache.parquet.filter.RecordFilter;
 import org.apache.parquet.filter.UnboundRecordFilter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class TestSpecificInputOutputFormat {
-  private static final Log LOG = 
Log.getLog(TestSpecificInputOutputFormat.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(TestSpecificInputOutputFormat.class);
 
   public static Car nextRecord(int i) {
     String vin = "1VXBR12EXCP000000";
@@ -268,10 +269,10 @@ public class TestSpecificInputOutputFormat {
   private void waitForJob(Job job) throws Exception {
     job.submit();
     while (!job.isComplete()) {
-      LOG.debug("waiting for job " + job.getJobName());
+      LOG.debug("waiting for job {}", job.getJobName());
       sleep(100);
     }
-    LOG.info("status for job " + job.getJobName() + ": " + (job.isSuccessful() 
? "SUCCESS" : "FAILURE"));
+    LOG.info("status for job {}: {}", job.getJobName(), (job.isSuccessful() ? 
"SUCCESS" : "FAILURE"));
     if (!job.isSuccessful()) {
       throw new RuntimeException("job failed " + job.getJobName());
     }

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/CorruptDeltaByteArrays.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/CorruptDeltaByteArrays.java 
b/parquet-column/src/main/java/org/apache/parquet/CorruptDeltaByteArrays.java
index 258c9ee..d19e489 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/CorruptDeltaByteArrays.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/CorruptDeltaByteArrays.java
@@ -20,9 +20,11 @@ package org.apache.parquet;
 
 import org.apache.parquet.VersionParser.ParsedVersion;
 import org.apache.parquet.column.Encoding;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CorruptDeltaByteArrays {
-  private static final Log LOG = Log.getLog(CorruptStatistics.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(CorruptStatistics.class);
 
   private static final SemanticVersion PARQUET_246_FIXED_VERSION =
       new SemanticVersion(1, 8, 0);
@@ -43,7 +45,7 @@ public class CorruptDeltaByteArrays {
 
     if (!version.hasSemanticVersion()) {
       LOG.warn("Requiring sequential reads because created_by did not " +
-          "contain a valid version (see PARQUET-246): " + version.version);
+          "contain a valid version (see PARQUET-246): {}", version.version);
       return true;
     }
 
@@ -61,7 +63,7 @@ public class CorruptDeltaByteArrays {
 
     if (semver.compareTo(PARQUET_246_FIXED_VERSION) < 0) {
       LOG.info("Requiring sequential reads because this file was created " +
-          "prior to " + PARQUET_246_FIXED_VERSION + ". See PARQUET-246" );
+          "prior to {}. See PARQUET-246", PARQUET_246_FIXED_VERSION );
       return true;
     }
 
@@ -75,8 +77,7 @@ public class CorruptDeltaByteArrays {
     }
 
     if (Strings.isNullOrEmpty(createdBy)) {
-      LOG.info("Requiring sequential reads because file version is empty. " +
-          "See PARQUET-246");
+      LOG.info("Requiring sequential reads because file version is empty. See 
PARQUET-246");
       return true;
     }
 

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/CorruptStatistics.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/CorruptStatistics.java 
b/parquet-column/src/main/java/org/apache/parquet/CorruptStatistics.java
index 7b9745c..fa5dac6 100644
--- a/parquet-column/src/main/java/org/apache/parquet/CorruptStatistics.java
+++ b/parquet-column/src/main/java/org/apache/parquet/CorruptStatistics.java
@@ -22,6 +22,8 @@ import 
org.apache.parquet.SemanticVersion.SemanticVersionParseException;
 import org.apache.parquet.VersionParser.ParsedVersion;
 import org.apache.parquet.VersionParser.VersionParseException;
 import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
@@ -32,7 +34,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
  * and thus it's statistics should be ignored / not trusted.
  */
 public class CorruptStatistics {
-  private static final Log LOG = Log.getLog(CorruptStatistics.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(CorruptStatistics.class);
 
   private static final AtomicBoolean alreadyLogged = new AtomicBoolean(false);
 

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReaderImpl.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReaderImpl.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReaderImpl.java
index 6aafb78..6cb3e35 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReaderImpl.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReaderImpl.java
@@ -19,7 +19,6 @@
 package org.apache.parquet.column.impl;
 
 import static java.lang.String.format;
-import static org.apache.parquet.Log.DEBUG;
 import static org.apache.parquet.Preconditions.checkNotNull;
 import static org.apache.parquet.column.ValuesType.DEFINITION_LEVEL;
 import static org.apache.parquet.column.ValuesType.REPETITION_LEVEL;
@@ -29,7 +28,6 @@ import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
 import org.apache.parquet.CorruptDeltaByteArrays;
-import org.apache.parquet.Log;
 import org.apache.parquet.VersionParser.ParsedVersion;
 import org.apache.parquet.bytes.BytesInput;
 import org.apache.parquet.bytes.BytesUtils;
@@ -50,6 +48,8 @@ import org.apache.parquet.io.api.Binary;
 import org.apache.parquet.io.api.PrimitiveConverter;
 import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName;
 import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeNameConverter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * ColumnReader implementation
@@ -58,7 +58,7 @@ import 
org.apache.parquet.schema.PrimitiveType.PrimitiveTypeNameConverter;
  *
  */
 public class ColumnReaderImpl implements ColumnReader {
-  private static final Log LOG = Log.getLog(ColumnReaderImpl.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(ColumnReaderImpl.class);
 
   /**
    * binds the lower level page decoder to the record converter materializing 
the records
@@ -522,7 +522,7 @@ public class ColumnReaderImpl implements ColumnReader {
   private void checkRead() {
     if (isPageFullyConsumed()) {
       if (isFullyConsumed()) {
-        if (DEBUG) LOG.debug("end reached");
+        LOG.debug("end reached");
         repetitionLevel = 0; // the next repetition level
         return;
       }
@@ -532,7 +532,7 @@ public class ColumnReaderImpl implements ColumnReader {
   }
 
   private void readPage() {
-    if (DEBUG) LOG.debug("loading page");
+    LOG.debug("loading page");
     DataPage page = pageReader.readPage();
     page.accept(new DataPage.Visitor<Void>() {
       @Override
@@ -589,14 +589,14 @@ public class ColumnReaderImpl implements ColumnReader {
     this.definitionLevelColumn = new ValuesReaderIntIterator(dlReader);
     try {
       byte[] bytes = page.getBytes().toByteArray();
-      if (DEBUG) LOG.debug("page size " + bytes.length + " bytes and " + 
pageValueCount + " records");
-      if (DEBUG) LOG.debug("reading repetition levels at 0");
+      LOG.debug("page size {} bytes and {} records", bytes.length, 
pageValueCount);
+      LOG.debug("reading repetition levels at 0");
       rlReader.initFromPage(pageValueCount, bytes, 0);
       int next = rlReader.getNextOffset();
-      if (DEBUG) LOG.debug("reading definition levels at " + next);
+      LOG.debug("reading definition levels at {}", next);
       dlReader.initFromPage(pageValueCount, bytes, next);
       next = dlReader.getNextOffset();
-      if (DEBUG) LOG.debug("reading data at " + next);
+      LOG.debug("reading data at {}", next);
       initDataReader(page.getValueEncoding(), bytes, next, 
page.getValueCount());
     } catch (IOException e) {
       throw new ParquetDecodingException("could not read page " + page + " in 
col " + path, e);
@@ -607,7 +607,7 @@ public class ColumnReaderImpl implements ColumnReader {
     this.repetitionLevelColumn = newRLEIterator(path.getMaxRepetitionLevel(), 
page.getRepetitionLevels());
     this.definitionLevelColumn = newRLEIterator(path.getMaxDefinitionLevel(), 
page.getDefinitionLevels());
     try {
-      if (DEBUG) LOG.debug("page data size " + page.getData().size() + " bytes 
and " + pageValueCount + " records");
+      LOG.debug("page data size {} bytes and {} records", 
page.getData().size(), pageValueCount);
       initDataReader(page.getDataEncoding(), page.getData().toByteArray(), 0, 
page.getValueCount());
     } catch (IOException e) {
       throw new ParquetDecodingException("could not read page " + page + " in 
col " + path, e);

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnWriterV1.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnWriterV1.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnWriterV1.java
index dc75c5b..45c9919 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnWriterV1.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnWriterV1.java
@@ -22,7 +22,6 @@ import static org.apache.parquet.bytes.BytesInput.concat;
 
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.column.ColumnDescriptor;
 import org.apache.parquet.column.ColumnWriter;
 import org.apache.parquet.column.ParquetProperties;
@@ -32,6 +31,8 @@ import org.apache.parquet.column.statistics.Statistics;
 import org.apache.parquet.column.values.ValuesWriter;
 import org.apache.parquet.io.ParquetEncodingException;
 import org.apache.parquet.io.api.Binary;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Writes (repetition level, definition level, value) triplets and deals with 
writing pages to the underlying layer.
@@ -40,8 +41,11 @@ import org.apache.parquet.io.api.Binary;
  *
  */
 final class ColumnWriterV1 implements ColumnWriter {
-  private static final Log LOG = Log.getLog(ColumnWriterV1.class);
-  private static final boolean DEBUG = Log.DEBUG;
+  private static final Logger LOG = 
LoggerFactory.getLogger(ColumnWriterV1.class);
+
+  // By default: Debugging disabled this way (using the "if (DEBUG)" IN the 
methods) to allow
+  // the java compiler (not the JIT) to remove the unused statements during 
build time.
+  private static final boolean DEBUG = false;
 
   private final ColumnDescriptor path;
   private final PageWriter pageWriter;
@@ -72,7 +76,7 @@ final class ColumnWriterV1 implements ColumnWriter {
   }
 
   private void log(Object value, int r, int d) {
-    LOG.debug(path + " " + value + " r:" + r + " d:" + d);
+    if (DEBUG) LOG.debug( "{} {} r:{} d:{}", path, value, r, d);
   }
 
   private void resetStatistics() {

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnWriterV2.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnWriterV2.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnWriterV2.java
index 220edb3..2e77fdd 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnWriterV2.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnWriterV2.java
@@ -21,7 +21,6 @@ package org.apache.parquet.column.impl;
 import java.io.IOException;
 
 import org.apache.parquet.Ints;
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesInput;
 import org.apache.parquet.column.ColumnDescriptor;
 import org.apache.parquet.column.ColumnWriter;
@@ -34,6 +33,8 @@ import org.apache.parquet.column.values.ValuesWriter;
 import org.apache.parquet.column.values.rle.RunLengthBitPackingHybridEncoder;
 import org.apache.parquet.io.ParquetEncodingException;
 import org.apache.parquet.io.api.Binary;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Writes (repetition level, definition level, value) triplets and deals with 
writing pages to the underlying layer.
@@ -42,8 +43,11 @@ import org.apache.parquet.io.api.Binary;
  *
  */
 final class ColumnWriterV2 implements ColumnWriter {
-  private static final Log LOG = Log.getLog(ColumnWriterV2.class);
-  private static final boolean DEBUG = Log.DEBUG;
+  private static final Logger LOG = 
LoggerFactory.getLogger(ColumnWriterV2.class);
+
+  // By default: Debugging disabled this way (using the "if (DEBUG)" IN the 
methods) to allow
+  // the java compiler (not the JIT) to remove the unused statements during 
build time.
+  private static final boolean DEBUG = false;
 
   private final ColumnDescriptor path;
   private final PageWriter pageWriter;
@@ -69,7 +73,7 @@ final class ColumnWriterV2 implements ColumnWriter {
   }
 
   private void log(Object value, int r, int d) {
-    LOG.debug(path + " " + value + " r:" + r + " d:" + d);
+    LOG.debug("{} {} r:{} d:{}", path, value, r, d);
   }
 
   private void resetStatistics() {

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/bitpacking/BitPackingValuesReader.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/bitpacking/BitPackingValuesReader.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/bitpacking/BitPackingValuesReader.java
index f713263..c5de5bc 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/bitpacking/BitPackingValuesReader.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/bitpacking/BitPackingValuesReader.java
@@ -24,11 +24,12 @@ import static 
org.apache.parquet.column.values.bitpacking.BitPacking.createBitPa
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesUtils;
 import org.apache.parquet.column.values.ValuesReader;
 import org.apache.parquet.column.values.bitpacking.BitPacking.BitPackingReader;
 import org.apache.parquet.io.ParquetDecodingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * a column reader that packs the ints in the number of bits required based on 
the maximum size.
@@ -37,7 +38,7 @@ import org.apache.parquet.io.ParquetDecodingException;
  *
  */
 public class BitPackingValuesReader extends ValuesReader {
-  private static final Log LOG = Log.getLog(BitPackingValuesReader.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(BitPackingValuesReader.class);
 
   private ByteArrayInputStream in;
   private BitPackingReader bitPackingReader;
@@ -72,7 +73,7 @@ public class BitPackingValuesReader extends ValuesReader {
   public void initFromPage(int valueCount, byte[] in, int offset) throws 
IOException {
     int effectiveBitLength = valueCount * bitsPerValue;
     int length = BytesUtils.paddedByteCountFromBits(effectiveBitLength);
-    if (Log.DEBUG) LOG.debug("reading " + length + " bytes for " + valueCount 
+ " values of size " + bitsPerValue + " bits." );
+    LOG.debug("reading {} bytes for {} values of size {} bits.", length, 
valueCount, bitsPerValue);
     this.in = new ByteArrayInputStream(in, offset, length);
     this.bitPackingReader = createBitPackingReader(bitsPerValue, this.in, 
valueCount);
     this.nextOffset = offset + length;

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/bitpacking/ByteBitPackingValuesReader.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/bitpacking/ByteBitPackingValuesReader.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/bitpacking/ByteBitPackingValuesReader.java
index c0ab7e0..60a3a10 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/bitpacking/ByteBitPackingValuesReader.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/bitpacking/ByteBitPackingValuesReader.java
@@ -21,14 +21,15 @@ package org.apache.parquet.column.values.bitpacking;
 import java.io.IOException;
 import java.util.Arrays;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesUtils;
 import org.apache.parquet.column.values.ValuesReader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ByteBitPackingValuesReader extends ValuesReader {
   private static final int VALUES_AT_A_TIME = 8; // because we're using 
unpack8Values()
 
-  private static final Log LOG = Log.getLog(ByteBitPackingValuesReader.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(ByteBitPackingValuesReader.class);
 
   private final int bitWidth;
   private final BytePacker packer;
@@ -63,7 +64,7 @@ public class ByteBitPackingValuesReader extends ValuesReader {
       throws IOException {
     int effectiveBitLength = valueCount * bitWidth;
     int length = BytesUtils.paddedByteCountFromBits(effectiveBitLength); // 
ceil
-    if (Log.DEBUG) LOG.debug("reading " + length + " bytes for " + valueCount 
+ " values of size " + bitWidth + " bits." );
+    LOG.debug("reading {} bytes for {} values of size {} bits.", length, 
valueCount, bitWidth);
     this.encoded = page;
     this.encodedPos = offset;
     this.decodedPosition = VALUES_AT_A_TIME - 1;

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BitWriter.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BitWriter.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BitWriter.java
index 1d1d9d1..bb41d3c 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BitWriter.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BitWriter.java
@@ -18,13 +18,14 @@
  */
 package org.apache.parquet.column.values.boundedint;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesInput;
 import org.apache.parquet.bytes.CapacityByteArrayOutputStream;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 class BitWriter {
-  private static final Log LOG = Log.getLog(BitWriter.class);
-  private static final boolean DEBUG = false;//Log.DEBUG;
+  private static final Logger LOG = LoggerFactory.getLogger(BitWriter.class);
+  private static final boolean DEBUG = false;
 
   private CapacityByteArrayOutputStream baos;
   private int currentByte = 0;
@@ -46,21 +47,21 @@ class BitWriter {
   }
 
   public void writeBit(boolean bit) {
-    if (DEBUG) LOG.debug("writing: " + (bit ? "1" : "0"));
+    if (DEBUG) LOG.debug("writing: {}", (bit ? "1" : "0"));
     currentByte = setBytePosition(currentByte, currentBytePosition++, bit);
     if (currentBytePosition == 8) {
       baos.write(currentByte);
-      if (DEBUG) LOG.debug("to buffer: " + toBinary(currentByte));
+      if (DEBUG) LOG.debug("to buffer: {}", toBinary(currentByte));
       currentByte = 0;
       currentBytePosition = 0;
     }
   }
 
   public void writeByte(int val) {
-    if (DEBUG) LOG.debug("writing: " + toBinary(val) + " (" + val + ")");
+    if (DEBUG) LOG.debug("writing: {} ({})", toBinary(val), val);
     currentByte |= ((val & 0xFF) << currentBytePosition);
     baos.write(currentByte);
-    if (DEBUG) LOG.debug("to buffer: " + toBinary(currentByte));
+    if (DEBUG) LOG.debug("to buffer: {}", toBinary(currentByte));
     currentByte >>>= 8;
   }
 
@@ -72,13 +73,13 @@ class BitWriter {
    * @param bitsToWrite the number of bits to use
    */
   public void writeNBitInteger(int val, int bitsToWrite) {
-    if (DEBUG) LOG.debug("writing: " + toBinary(val, bitsToWrite) + " (" + val 
+ ")");
+    if (DEBUG) LOG.debug("writing: {} ({})", toBinary(val, bitsToWrite), val);
     val <<= currentBytePosition;
     int upperByte = currentBytePosition + bitsToWrite;
     currentByte |= val;
     while (upperByte >= 8) {
       baos.write(currentByte); //this only writes the lowest byte
-      if (DEBUG) LOG.debug("to buffer: " + toBinary(currentByte));
+      if (DEBUG) LOG.debug("to buffer: {}", toBinary(currentByte));
       upperByte -= 8;
       currentByte >>>= 8;
     }
@@ -101,7 +102,7 @@ class BitWriter {
     if (!finished) {
       if (currentBytePosition > 0) {
         baos.write(currentByte);
-        if (DEBUG) LOG.debug("to buffer: " + toBinary(currentByte));
+        if (DEBUG) LOG.debug("to buffer: {}", toBinary(currentByte));
       }
     }
     finished = true;

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BoundedIntValuesReader.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BoundedIntValuesReader.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BoundedIntValuesReader.java
index dda4431..5f7c95f 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BoundedIntValuesReader.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BoundedIntValuesReader.java
@@ -18,20 +18,19 @@
  */
 package org.apache.parquet.column.values.boundedint;
 
-import static org.apache.parquet.Log.DEBUG;
-
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesUtils;
 import org.apache.parquet.column.values.ValuesReader;
 import org.apache.parquet.io.ParquetDecodingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @see BoundedIntValuesWriter
  */
 class BoundedIntValuesReader extends ValuesReader {
-  private static final Log LOG = Log.getLog(BoundedIntValuesReader.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(BoundedIntValuesReader.class);
 
   private int currentValueCt = 0;
   private int currentValue = 0;
@@ -71,13 +70,14 @@ class BoundedIntValuesReader extends ValuesReader {
   // to BoundedIntColumnWriter.writeData(BytesOutput)
   @Override
   public void initFromPage(int valueCount, byte[] in, int offset) throws 
IOException {
-    if (DEBUG) LOG.debug("reading size at "+ offset + ": " + in[offset] + " " 
+ in[offset + 1] + " " + in[offset + 2] + " " + in[offset + 3] + " ");
+    LOG.debug("reading size at {}: {} {} {} {}",
+        offset, in[offset], in[offset + 1], in[offset + 2], in[offset + 3]);
     int totalBytes = BytesUtils.readIntLittleEndian(in, offset);
-    if (DEBUG) LOG.debug("will read "+ totalBytes + " bytes");
+    LOG.debug("will read {} bytes", totalBytes);
     currentValueCt = 0;
     currentValue = 0;
     bitReader.prepare(in, offset + 4, totalBytes);
-    if (DEBUG) LOG.debug("will read next from " + (offset + totalBytes + 4));
+    LOG.debug("will read next from {}", (offset + totalBytes + 4));
     this.nextOffset = offset + totalBytes + 4;
   }
   

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BoundedIntValuesWriter.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BoundedIntValuesWriter.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BoundedIntValuesWriter.java
index 0acaaf7..2cc9e01 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BoundedIntValuesWriter.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/boundedint/BoundedIntValuesWriter.java
@@ -20,12 +20,13 @@ package org.apache.parquet.column.values.boundedint;
 
 import static org.apache.parquet.bytes.BytesInput.concat;
 import static org.apache.parquet.column.Encoding.RLE;
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesInput;
 import org.apache.parquet.column.Encoding;
 import org.apache.parquet.column.values.ValuesWriter;
 import org.apache.parquet.column.values.bitpacking.BitPackingValuesWriter;
 import org.apache.parquet.io.ParquetEncodingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This is a special ColumnWriter for the case when you need to write
@@ -39,7 +40,7 @@ import org.apache.parquet.io.ParquetEncodingException;
  * values are expected.
  */
 class BoundedIntValuesWriter extends ValuesWriter {
-  private static final Log LOG = Log.getLog(BoundedIntValuesWriter.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(BoundedIntValuesWriter.class);
 
   private int currentValue = -1;
   private int currentValueCt = -1;
@@ -66,7 +67,7 @@ class BoundedIntValuesWriter extends ValuesWriter {
     this.bitWriter = new BitWriter(initialCapacity, pageSize);
     bitsPerValue = (int)Math.ceil(Math.log(bound + 1)/Math.log(2));
     shouldRepeatThreshold = (bitsPerValue + 9)/(1 + bitsPerValue);
-    if (Log.DEBUG) LOG.debug("init column with bit width of " + bitsPerValue + 
" and repeat threshold of " + shouldRepeatThreshold);
+    LOG.debug("init column with bit width of {} and repeat threshold of {}", 
bitsPerValue, shouldRepeatThreshold);
   }
 
   @Override
@@ -83,7 +84,7 @@ class BoundedIntValuesWriter extends ValuesWriter {
   public BytesInput getBytes() {
     serializeCurrentValue();
     BytesInput buf = bitWriter.finish();
-    if (Log.DEBUG) LOG.debug("writing a buffer of size " + buf.size() + " + 4 
bytes");
+    LOG.debug("writing a buffer of size {} + 4 bytes", buf.size());
     // We serialize the length so that on deserialization we can
     // deserialize as we go, instead of having to load everything
     // into memory

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/deltalengthbytearray/DeltaLengthByteArrayValuesReader.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/deltalengthbytearray/DeltaLengthByteArrayValuesReader.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/deltalengthbytearray/DeltaLengthByteArrayValuesReader.java
index fb9bdc5..545b78f 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/deltalengthbytearray/DeltaLengthByteArrayValuesReader.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/deltalengthbytearray/DeltaLengthByteArrayValuesReader.java
@@ -18,14 +18,14 @@
  */
 package org.apache.parquet.column.values.deltalengthbytearray;
 
-import static org.apache.parquet.Log.DEBUG;
 
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.column.values.ValuesReader;
 import org.apache.parquet.column.values.delta.DeltaBinaryPackingValuesReader;
 import org.apache.parquet.io.api.Binary;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Reads binary data written by {@link DeltaLengthByteArrayValueWriter}
@@ -35,7 +35,7 @@ import org.apache.parquet.io.api.Binary;
  */
 public class DeltaLengthByteArrayValuesReader extends ValuesReader {
 
-  private static final Log LOG = 
Log.getLog(DeltaLengthByteArrayValuesReader.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(DeltaLengthByteArrayValuesReader.class);
   private ValuesReader lengthReader;
   private byte[] in;
   private int offset;
@@ -47,7 +47,7 @@ public class DeltaLengthByteArrayValuesReader extends 
ValuesReader {
   @Override
   public void initFromPage(int valueCount, byte[] in, int offset)
       throws IOException {
-    if (DEBUG) LOG.debug("init from page at offset "+ offset + " for length " 
+ (in.length - offset));
+    LOG.debug("init from page at offset {} for length {}", offset, (in.length 
- offset));
     lengthReader.initFromPage(valueCount, in, offset);
     offset = lengthReader.getNextOffset();
     this.in = in;

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/deltalengthbytearray/DeltaLengthByteArrayValuesWriter.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/deltalengthbytearray/DeltaLengthByteArrayValuesWriter.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/deltalengthbytearray/DeltaLengthByteArrayValuesWriter.java
index 3f686cc..6f2b99b 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/deltalengthbytearray/DeltaLengthByteArrayValuesWriter.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/deltalengthbytearray/DeltaLengthByteArrayValuesWriter.java
@@ -20,7 +20,6 @@ package org.apache.parquet.column.values.deltalengthbytearray;
 
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesInput;
 import org.apache.parquet.bytes.CapacityByteArrayOutputStream;
 import org.apache.parquet.bytes.LittleEndianDataOutputStream;
@@ -29,6 +28,8 @@ import org.apache.parquet.column.values.ValuesWriter;
 import org.apache.parquet.column.values.delta.DeltaBinaryPackingValuesWriter;
 import org.apache.parquet.io.ParquetEncodingException;
 import org.apache.parquet.io.api.Binary;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Write lengths of byte-arrays using delta encoding, followed by concatenated 
byte-arrays
@@ -42,7 +43,7 @@ import org.apache.parquet.io.api.Binary;
  */
 public class DeltaLengthByteArrayValuesWriter extends ValuesWriter {
 
-  private static final Log LOG = 
Log.getLog(DeltaLengthByteArrayValuesWriter.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(DeltaLengthByteArrayValuesWriter.class);
 
   private ValuesWriter lengthWriter;
   private CapacityByteArrayOutputStream arrayOut;
@@ -79,7 +80,7 @@ public class DeltaLengthByteArrayValuesWriter extends 
ValuesWriter {
     } catch (IOException e) {
       throw new ParquetEncodingException("could not write page", e);
     }
-    if (Log.DEBUG) LOG.debug("writing a buffer of size " + arrayOut.size());
+    LOG.debug("writing a buffer of size {}", arrayOut.size());
     return BytesInput.concat(lengthWriter.getBytes(), 
BytesInput.from(arrayOut));
   }
 

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/dictionary/DictionaryValuesReader.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/dictionary/DictionaryValuesReader.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/dictionary/DictionaryValuesReader.java
index 972c87e..d9bd3da 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/dictionary/DictionaryValuesReader.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/dictionary/DictionaryValuesReader.java
@@ -18,18 +18,18 @@
  */
 package org.apache.parquet.column.values.dictionary;
 
-import static org.apache.parquet.Log.DEBUG;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesUtils;
 import org.apache.parquet.column.Dictionary;
 import org.apache.parquet.column.values.ValuesReader;
 import org.apache.parquet.column.values.rle.RunLengthBitPackingHybridDecoder;
 import org.apache.parquet.io.ParquetDecodingException;
 import org.apache.parquet.io.api.Binary;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Reads values that have been dictionary encoded
@@ -38,7 +38,7 @@ import org.apache.parquet.io.api.Binary;
  *
  */
 public class DictionaryValuesReader extends ValuesReader {
-  private static final Log LOG = Log.getLog(DictionaryValuesReader.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(DictionaryValuesReader.class);
 
   private ByteArrayInputStream in;
 
@@ -55,10 +55,9 @@ public class DictionaryValuesReader extends ValuesReader {
       throws IOException {
     this.in = new ByteArrayInputStream(page, offset, page.length - offset);
     if (page.length - offset > 0) {
-      if (DEBUG)
-        LOG.debug("init from page at offset " + offset + " for length " + 
(page.length - offset));
+      LOG.debug("init from page at offset {} for length {}", offset, 
(page.length - offset));
       int bitWidth = BytesUtils.readIntLittleEndianOnOneByte(in);
-      if (DEBUG) LOG.debug("bit width " + bitWidth);
+      LOG.debug("bit width {}", bitWidth);
       decoder = new RunLengthBitPackingHybridDecoder(bitWidth, in);
     } else {
       decoder = new RunLengthBitPackingHybridDecoder(1, in) {

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/dictionary/DictionaryValuesWriter.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/dictionary/DictionaryValuesWriter.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/dictionary/DictionaryValuesWriter.java
index eb9fdd9..2e298a9 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/dictionary/DictionaryValuesWriter.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/dictionary/DictionaryValuesWriter.java
@@ -18,7 +18,6 @@
  */
 package org.apache.parquet.column.values.dictionary;
 
-import static org.apache.parquet.Log.DEBUG;
 import static org.apache.parquet.bytes.BytesInput.concat;
 import it.unimi.dsi.fastutil.doubles.Double2IntLinkedOpenHashMap;
 import it.unimi.dsi.fastutil.doubles.Double2IntMap;
@@ -39,7 +38,6 @@ import java.io.IOException;
 import java.util.Arrays;
 import java.util.Iterator;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesInput;
 import org.apache.parquet.bytes.BytesUtils;
 import org.apache.parquet.bytes.CapacityByteArrayOutputStream;
@@ -54,6 +52,9 @@ import 
org.apache.parquet.column.values.rle.RunLengthBitPackingHybridEncoder;
 import org.apache.parquet.io.ParquetEncodingException;
 import org.apache.parquet.io.api.Binary;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * Will attempt to encode values using a dictionary and fall back to plain 
encoding
  *  if the dictionary gets too big
@@ -62,7 +63,7 @@ import org.apache.parquet.io.api.Binary;
  *
  */
 public abstract class DictionaryValuesWriter extends ValuesWriter implements 
RequiresFallback {
-  private static final Log LOG = Log.getLog(DictionaryValuesWriter.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(DictionaryValuesWriter.class);
 
   /* max entries allowed for the dictionary will fail over to plain encoding 
if reached */
   private static final int MAX_DICTIONARY_ENTRIES = Integer.MAX_VALUE - 1;
@@ -145,7 +146,7 @@ public abstract class DictionaryValuesWriter extends 
ValuesWriter implements Req
   @Override
   public BytesInput getBytes() {
     int maxDicId = getDictionarySize() - 1;
-    if (DEBUG) LOG.debug("max dic id " + maxDicId);
+    LOG.debug("max dic id {}", maxDicId);
     int bitWidth = BytesUtils.getWidthFromMaxInt(maxDicId);
 
     int initialSlabSize =
@@ -161,7 +162,7 @@ public abstract class DictionaryValuesWriter extends 
ValuesWriter implements Req
       // encodes the bit width
       byte[] bytesHeader = new byte[] { (byte) bitWidth };
       BytesInput rleEncodedBytes = encoder.toBytes();
-      if (DEBUG) LOG.debug("rle encoded bytes " + rleEncodedBytes.size());
+      LOG.debug("rle encoded bytes {}", rleEncodedBytes.size());
       BytesInput bytes = concat(BytesInput.from(bytesHeader), rleEncodedBytes);
       // remember size of dictionary when we last wrote a page
       lastUsedDictionarySize = getDictionarySize();

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BinaryPlainValuesReader.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BinaryPlainValuesReader.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BinaryPlainValuesReader.java
index 4346e02..7792be9 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BinaryPlainValuesReader.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BinaryPlainValuesReader.java
@@ -18,18 +18,18 @@
  */
 package org.apache.parquet.column.values.plain;
 
-import static org.apache.parquet.Log.DEBUG;
 
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesUtils;
 import org.apache.parquet.column.values.ValuesReader;
 import org.apache.parquet.io.ParquetDecodingException;
 import org.apache.parquet.io.api.Binary;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class BinaryPlainValuesReader extends ValuesReader {
-  private static final Log LOG = Log.getLog(BinaryPlainValuesReader.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(BinaryPlainValuesReader.class);
   private byte[] in;
   private int offset;
 
@@ -62,7 +62,7 @@ public class BinaryPlainValuesReader extends ValuesReader {
   @Override
   public void initFromPage(int valueCount, byte[] in, int offset)
       throws IOException {
-    if (DEBUG) LOG.debug("init from page at offset "+ offset + " for length " 
+ (in.length - offset));
+    LOG.debug("init from page at offset {} for length {}", offset, (in.length 
- offset));
     this.in = in;
     this.offset = offset;
   }

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BooleanPlainValuesReader.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BooleanPlainValuesReader.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BooleanPlainValuesReader.java
index 56c005f..d1b38c0 100755
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BooleanPlainValuesReader.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/BooleanPlainValuesReader.java
@@ -18,14 +18,14 @@
  */
 package org.apache.parquet.column.values.plain;
 
-import static org.apache.parquet.Log.DEBUG;
 import static org.apache.parquet.column.values.bitpacking.Packer.LITTLE_ENDIAN;
 
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.column.values.ValuesReader;
 import org.apache.parquet.column.values.bitpacking.ByteBitPackingValuesReader;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * encodes boolean for the plain encoding: one bit at a time (0 = false)
@@ -34,7 +34,7 @@ import 
org.apache.parquet.column.values.bitpacking.ByteBitPackingValuesReader;
  *
  */
 public class BooleanPlainValuesReader extends ValuesReader {
-  private static final Log LOG = Log.getLog(BooleanPlainValuesReader.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(BooleanPlainValuesReader.class);
 
   private ByteBitPackingValuesReader in = new ByteBitPackingValuesReader(1, 
LITTLE_ENDIAN);
 
@@ -63,7 +63,7 @@ public class BooleanPlainValuesReader extends ValuesReader {
    */
   @Override
   public void initFromPage(int valueCount, byte[] in, int offset) throws 
IOException {
-    if (DEBUG) LOG.debug("init from page at offset "+ offset + " for length " 
+ (in.length - offset));
+    LOG.debug("init from page at offset {} for length {}", offset, (in.length 
- offset));
     this.in.initFromPage(valueCount, in, offset);
   }
   

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/plain/FixedLenByteArrayPlainValuesReader.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/FixedLenByteArrayPlainValuesReader.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/FixedLenByteArrayPlainValuesReader.java
index 098a486..c9aec97 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/FixedLenByteArrayPlainValuesReader.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/FixedLenByteArrayPlainValuesReader.java
@@ -19,12 +19,11 @@
 package org.apache.parquet.column.values.plain;
 
 import java.io.IOException;
-import org.apache.parquet.Log;
 import org.apache.parquet.column.values.ValuesReader;
 import org.apache.parquet.io.ParquetDecodingException;
 import org.apache.parquet.io.api.Binary;
-
-import static org.apache.parquet.Log.DEBUG;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * ValuesReader for FIXED_LEN_BYTE_ARRAY.
@@ -32,7 +31,7 @@ import static org.apache.parquet.Log.DEBUG;
  * @author David Z. Chen <dc...@linkedin.com>
  */
 public class FixedLenByteArrayPlainValuesReader extends ValuesReader {
-  private static final Log LOG = 
Log.getLog(FixedLenByteArrayPlainValuesReader.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(FixedLenByteArrayPlainValuesReader.class);
   private byte[] in;
   private int offset;
   private int length;
@@ -60,7 +59,7 @@ public class FixedLenByteArrayPlainValuesReader extends 
ValuesReader {
   @Override
   public void initFromPage(int valueCount, byte[] in, int offset)
       throws IOException {
-    if (DEBUG) LOG.debug("init from page at offset "+ offset + " for length " 
+ (in.length - offset));
+    LOG.debug("init from page at offset {} for length {}", offset, (in.length 
- offset));
     this.in = in;
     this.offset = offset;
   }

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/plain/FixedLenByteArrayPlainValuesWriter.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/FixedLenByteArrayPlainValuesWriter.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/FixedLenByteArrayPlainValuesWriter.java
index 986ae0b..44bd91c 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/FixedLenByteArrayPlainValuesWriter.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/FixedLenByteArrayPlainValuesWriter.java
@@ -20,7 +20,6 @@ package org.apache.parquet.column.values.plain;
 
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesInput;
 import org.apache.parquet.bytes.CapacityByteArrayOutputStream;
 import org.apache.parquet.bytes.LittleEndianDataOutputStream;
@@ -28,6 +27,8 @@ import org.apache.parquet.column.values.ValuesWriter;
 import org.apache.parquet.column.Encoding;
 import org.apache.parquet.io.ParquetEncodingException;
 import org.apache.parquet.io.api.Binary;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * ValuesWriter for FIXED_LEN_BYTE_ARRAY.
@@ -35,7 +36,7 @@ import org.apache.parquet.io.api.Binary;
  * @author David Z. Chen <dc...@linkedin.com>
  */
 public class FixedLenByteArrayPlainValuesWriter extends ValuesWriter {
-  private static final Log LOG = Log.getLog(PlainValuesWriter.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(PlainValuesWriter.class);
 
   private CapacityByteArrayOutputStream arrayOut;
   private LittleEndianDataOutputStream out;
@@ -72,7 +73,7 @@ public class FixedLenByteArrayPlainValuesWriter extends 
ValuesWriter {
     } catch (IOException e) {
       throw new ParquetEncodingException("could not write page", e);
     }
-    if (Log.DEBUG) LOG.debug("writing a buffer of size " + arrayOut.size());
+    LOG.debug("writing a buffer of size {}", arrayOut.size());
     return BytesInput.from(arrayOut);
   }
 

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/plain/PlainValuesReader.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/PlainValuesReader.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/PlainValuesReader.java
index bd938ee..baea490 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/PlainValuesReader.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/PlainValuesReader.java
@@ -18,15 +18,14 @@
  */
 package org.apache.parquet.column.values.plain;
 
-import static org.apache.parquet.Log.DEBUG;
-
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.LittleEndianDataInputStream;
 import org.apache.parquet.column.values.ValuesReader;
 import org.apache.parquet.io.ParquetDecodingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Plain encoding for float, double, int, long
@@ -35,7 +34,7 @@ import org.apache.parquet.io.ParquetDecodingException;
  *
  */
 abstract public class PlainValuesReader extends ValuesReader {
-  private static final Log LOG = Log.getLog(PlainValuesReader.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(PlainValuesReader.class);
 
   protected LittleEndianDataInputStream in;
 
@@ -45,7 +44,7 @@ abstract public class PlainValuesReader extends ValuesReader {
    */
   @Override
   public void initFromPage(int valueCount, byte[] in, int offset) throws 
IOException {
-    if (DEBUG) LOG.debug("init from page at offset "+ offset + " for length " 
+ (in.length - offset));
+    LOG.debug("init from page at offset {} for length {}", offset , (in.length 
- offset));
     this.in = new LittleEndianDataInputStream(new ByteArrayInputStream(in, 
offset, in.length - offset));
   }
 

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/plain/PlainValuesWriter.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/PlainValuesWriter.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/PlainValuesWriter.java
index f33bd81..63cb434 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/plain/PlainValuesWriter.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/plain/PlainValuesWriter.java
@@ -21,7 +21,6 @@ package org.apache.parquet.column.values.plain;
 import java.io.IOException;
 import java.nio.charset.Charset;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.bytes.BytesInput;
 import org.apache.parquet.bytes.CapacityByteArrayOutputStream;
 import org.apache.parquet.bytes.LittleEndianDataOutputStream;
@@ -29,6 +28,8 @@ import org.apache.parquet.column.Encoding;
 import org.apache.parquet.column.values.ValuesWriter;
 import org.apache.parquet.io.ParquetEncodingException;
 import org.apache.parquet.io.api.Binary;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Plain encoding except for booleans
@@ -37,7 +38,7 @@ import org.apache.parquet.io.api.Binary;
  *
  */
 public class PlainValuesWriter extends ValuesWriter {
-  private static final Log LOG = Log.getLog(PlainValuesWriter.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(PlainValuesWriter.class);
 
   public static final Charset CHARSET = Charset.forName("UTF-8");
 
@@ -116,7 +117,7 @@ public class PlainValuesWriter extends ValuesWriter {
     } catch (IOException e) {
       throw new ParquetEncodingException("could not write page", e);
     }
-    if (Log.DEBUG) LOG.debug("writing a buffer of size " + arrayOut.size());
+    if (LOG.isDebugEnabled()) LOG.debug("writing a buffer of size {}", 
arrayOut.size());
     return BytesInput.from(arrayOut);
   }
 

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridDecoder.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridDecoder.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridDecoder.java
index 38eb354..afc5615 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridDecoder.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridDecoder.java
@@ -18,18 +18,18 @@
  */
 package org.apache.parquet.column.values.rle;
 
-import static org.apache.parquet.Log.DEBUG;
 
 import java.io.ByteArrayInputStream;
 import java.io.DataInputStream;
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.Preconditions;
 import org.apache.parquet.bytes.BytesUtils;
 import org.apache.parquet.column.values.bitpacking.BytePacker;
 import org.apache.parquet.column.values.bitpacking.Packer;
 import org.apache.parquet.io.ParquetDecodingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Decodes values written in the grammar described in {@link 
RunLengthBitPackingHybridEncoder}
@@ -37,7 +37,7 @@ import org.apache.parquet.io.ParquetDecodingException;
  * @author Julien Le Dem
  */
 public class RunLengthBitPackingHybridDecoder {
-  private static final Log LOG = 
Log.getLog(RunLengthBitPackingHybridDecoder.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(RunLengthBitPackingHybridDecoder.class);
 
   private static enum MODE { RLE, PACKED }
 
@@ -51,7 +51,7 @@ public class RunLengthBitPackingHybridDecoder {
   private int[] currentBuffer;
 
   public RunLengthBitPackingHybridDecoder(int bitWidth, ByteArrayInputStream 
in) {
-    if (DEBUG) LOG.debug("decoding bitWidth " + bitWidth);
+    LOG.debug("decoding bitWidth {}", bitWidth);
 
     Preconditions.checkArgument(bitWidth >= 0 && bitWidth <= 32, "bitWidth 
must be >= 0 and <= 32");
     this.bitWidth = bitWidth;
@@ -85,13 +85,13 @@ public class RunLengthBitPackingHybridDecoder {
     switch (mode) {
     case RLE:
       currentCount = header >>> 1;
-      if (DEBUG) LOG.debug("reading " + currentCount + " values RLE");
+      LOG.debug("reading {} values RLE", currentCount);
       currentValue = BytesUtils.readIntLittleEndianPaddedOnBitWidth(in, 
bitWidth);
       break;
     case PACKED:
       int numGroups = header >>> 1;
       currentCount = numGroups * 8;
-      if (DEBUG) LOG.debug("reading " + currentCount + " values BIT PACKED");
+      LOG.debug("reading {} values BIT PACKED", currentCount);
       currentBuffer = new int[currentCount]; // TODO: reuse a buffer
       byte[] bytes = new byte[numGroups * bitWidth];
       // At the end of the file RLE data though, there might not be that many 
bytes left.

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridEncoder.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridEncoder.java
 
b/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridEncoder.java
index 9d37574..c99189e 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridEncoder.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/column/values/rle/RunLengthBitPackingHybridEncoder.java
@@ -20,15 +20,15 @@ package org.apache.parquet.column.values.rle;
 
 import java.io.IOException;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.Preconditions;
 import org.apache.parquet.bytes.BytesInput;
 import org.apache.parquet.bytes.BytesUtils;
 import org.apache.parquet.bytes.CapacityByteArrayOutputStream;
 import org.apache.parquet.column.values.bitpacking.BytePacker;
 import org.apache.parquet.column.values.bitpacking.Packer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import static org.apache.parquet.Log.DEBUG;
 
 /**
  * Encodes values using a combination of run length encoding and bit packing,
@@ -59,7 +59,7 @@ import static org.apache.parquet.Log.DEBUG;
  * @author Alex Levenson
  */
 public class RunLengthBitPackingHybridEncoder {
-  private static final Log LOG = 
Log.getLog(RunLengthBitPackingHybridEncoder.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(RunLengthBitPackingHybridEncoder.class);
 
   private final BytePacker packer;
 
@@ -117,10 +117,8 @@ public class RunLengthBitPackingHybridEncoder {
   private boolean toBytesCalled;
 
   public RunLengthBitPackingHybridEncoder(int bitWidth, int initialCapacity, 
int pageSize) {
-    if (DEBUG) {
-      LOG.debug(String.format("Encoding: RunLengthBitPackingHybridEncoder with 
"
-        + "bithWidth: %d initialCapacity %d", bitWidth, initialCapacity));
-    }
+    LOG.debug("Encoding: RunLengthBitPackingHybridEncoder with "
+        + "bithWidth: {} initialCapacity {}", bitWidth, initialCapacity);
 
     Preconditions.checkArgument(bitWidth >= 0 && bitWidth <= 32, "bitWidth 
must be >= 0 and <= 32");
 

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/example/data/Group.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/example/data/Group.java 
b/parquet-column/src/main/java/org/apache/parquet/example/data/Group.java
index 3fb7d4d..61f6317 100644
--- a/parquet-column/src/main/java/org/apache/parquet/example/data/Group.java
+++ b/parquet-column/src/main/java/org/apache/parquet/example/data/Group.java
@@ -18,14 +18,14 @@
  */
 package org.apache.parquet.example.data;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.example.data.simple.NanoTime;
 import org.apache.parquet.io.api.Binary;
 import org.apache.parquet.io.api.RecordConsumer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 abstract public class Group extends GroupValueSource {
-  private static final Log logger = Log.getLog(Group.class);
-  private static final boolean DEBUG = Log.DEBUG;
+  private static final Logger LOG = LoggerFactory.getLogger(Group.class);
 
   public void add(String field, int value) {
     add(getType().getFieldIndex(field), value);
@@ -64,7 +64,9 @@ abstract public class Group extends GroupValueSource {
   }
 
   public Group addGroup(String field) {
-    if (DEBUG) logger.debug("add group "+field+" to "+getType().getName());
+    if (LOG.isDebugEnabled()) {
+      LOG.debug("add group {} to {}", field, getType().getName());
+    }
     return addGroup(getType().getFieldIndex(field));
   }
 

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/filter2/compat/FilterCompat.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/filter2/compat/FilterCompat.java
 
b/parquet-column/src/main/java/org/apache/parquet/filter2/compat/FilterCompat.java
index 2efcc39..17bd2e1 100644
--- 
a/parquet-column/src/main/java/org/apache/parquet/filter2/compat/FilterCompat.java
+++ 
b/parquet-column/src/main/java/org/apache/parquet/filter2/compat/FilterCompat.java
@@ -18,10 +18,11 @@
  */
 package org.apache.parquet.filter2.compat;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.filter.UnboundRecordFilter;
 import org.apache.parquet.filter2.predicate.FilterPredicate;
 import org.apache.parquet.filter2.predicate.LogicalInverseRewriter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.parquet.Preconditions.checkArgument;
 import static org.apache.parquet.Preconditions.checkNotNull;
@@ -40,7 +41,7 @@ import static org.apache.parquet.Preconditions.checkNotNull;
  * codebase.
  */
 public class FilterCompat {
-  private static final Log LOG = Log.getLog(FilterCompat.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(FilterCompat.class);
 
   /**
    * Anyone wanting to use a {@link Filter} need only implement this interface,
@@ -67,13 +68,13 @@ public class FilterCompat {
   public static Filter get(FilterPredicate filterPredicate) {
     checkNotNull(filterPredicate, "filterPredicate");
 
-    LOG.info("Filtering using predicate: " + filterPredicate);
+    LOG.info("Filtering using predicate: {}", filterPredicate);
 
     // rewrite the predicate to not include the not() operator
     FilterPredicate collapsedPredicate = 
LogicalInverseRewriter.rewrite(filterPredicate);
 
     if (!filterPredicate.equals(collapsedPredicate)) {
-      LOG.info("Predicate has been collapsed to: " + collapsedPredicate);
+      LOG.info("Predicate has been collapsed to: {}", collapsedPredicate);
     }
 
     return new FilterPredicateCompat(collapsedPredicate);

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/io/BaseRecordReader.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/io/BaseRecordReader.java 
b/parquet-column/src/main/java/org/apache/parquet/io/BaseRecordReader.java
index f2d88fc..8c7f390 100644
--- a/parquet-column/src/main/java/org/apache/parquet/io/BaseRecordReader.java
+++ b/parquet-column/src/main/java/org/apache/parquet/io/BaseRecordReader.java
@@ -18,17 +18,17 @@
  */
 package org.apache.parquet.io;
 
-import static org.apache.parquet.Log.DEBUG;
-import org.apache.parquet.Log;
 import org.apache.parquet.column.ColumnReadStore;
 import org.apache.parquet.io.RecordReaderImplementation.State;
 import org.apache.parquet.io.api.Binary;
 import org.apache.parquet.io.api.RecordConsumer;
 import org.apache.parquet.io.api.RecordMaterializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 // TODO(julien): this class appears to be unused -- can it be nuked? - todd
 public abstract class BaseRecordReader<T> extends RecordReader<T> {
-  private static final Log LOG = Log.getLog(BaseRecordReader.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(BaseRecordReader.class);
 
   public RecordConsumer recordConsumer;
   public RecordMaterializer<T> recordMaterializer;
@@ -48,11 +48,11 @@ public abstract class BaseRecordReader<T> extends 
RecordReader<T> {
   private int endIndex;
 
   protected void currentLevel(int currentLevel) {
-    if (DEBUG) LOG.debug("currentLevel: "+currentLevel);
+    LOG.debug("currentLevel: {}",currentLevel);
   }
 
   protected void log(String message) {
-    if (DEBUG) LOG.debug("bc: "+message);
+    LOG.debug("bc: {}", message);
   }
 
   final protected int getCaseId(int state, int currentLevel, int d, int nextR) 
{
@@ -62,18 +62,18 @@ public abstract class BaseRecordReader<T> extends 
RecordReader<T> {
   final protected void startMessage() {
     // reset state
     endField = null;
-    if (DEBUG) LOG.debug("startMessage()");
+    LOG.debug("startMessage()");
     recordConsumer.startMessage();
   }
 
   final protected void startGroup(String field, int index) {
     startField(field, index);
-    if (DEBUG) LOG.debug("startGroup()");
+    LOG.debug("startGroup()");
     recordConsumer.startGroup();
   }
 
   private void startField(String field, int index) {
-    if (DEBUG) LOG.debug("startField("+field+","+index+")");
+    LOG.debug("startField({},{})", field, index);
     if (endField != null && index == endIndex) {
       // skip the close/open tag
       endField = null;
@@ -89,13 +89,13 @@ public abstract class BaseRecordReader<T> extends 
RecordReader<T> {
 
   final protected void addPrimitiveINT64(String field, int index, long value) {
     startField(field, index);
-    if (DEBUG) LOG.debug("addLong("+value+")");
+    LOG.debug("addLong({})", value);
     recordConsumer.addLong(value);
     endField(field, index);
   }
 
   private void endField(String field, int index) {
-    if (DEBUG) LOG.debug("endField("+field+","+index+")");
+    LOG.debug("endField({},{})", field, index);
     if (endField != null) {
       recordConsumer.endField(endField, endIndex);
     }
@@ -105,14 +105,14 @@ public abstract class BaseRecordReader<T> extends 
RecordReader<T> {
 
   final protected void addPrimitiveBINARY(String field, int index, Binary 
value) {
     startField(field, index);
-    if (DEBUG) LOG.debug("addBinary("+value+")");
+    LOG.debug("addBinary({})", value);
     recordConsumer.addBinary(value);
     endField(field, index);
   }
 
   final protected void addPrimitiveINT32(String field, int index, int value) {
     startField(field, index);
-    if (DEBUG) LOG.debug("addInteger("+value+")");
+    LOG.debug("addInteger({})", value);
     recordConsumer.addInteger(value);
     endField(field, index);
   }
@@ -123,7 +123,7 @@ public abstract class BaseRecordReader<T> extends 
RecordReader<T> {
       recordConsumer.endField(endField, endIndex);
       endField = null;
     }
-    if (DEBUG) LOG.debug("endGroup()");
+    LOG.debug("endGroup()");
     recordConsumer.endGroup();
     endField(field, index);
   }
@@ -134,7 +134,7 @@ public abstract class BaseRecordReader<T> extends 
RecordReader<T> {
       recordConsumer.endField(endField, endIndex);
       endField = null;
     }
-    if (DEBUG) LOG.debug("endMessage()");
+    LOG.debug("endMessage()");
     recordConsumer.endMessage();
   }
 

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/io/ColumnIO.java
----------------------------------------------------------------------
diff --git a/parquet-column/src/main/java/org/apache/parquet/io/ColumnIO.java 
b/parquet-column/src/main/java/org/apache/parquet/io/ColumnIO.java
index 95a969e..9c6e729 100644
--- a/parquet-column/src/main/java/org/apache/parquet/io/ColumnIO.java
+++ b/parquet-column/src/main/java/org/apache/parquet/io/ColumnIO.java
@@ -22,7 +22,6 @@ package org.apache.parquet.io;
 import java.util.Arrays;
 import java.util.List;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.schema.Type;
 import org.apache.parquet.schema.Type.Repetition;
 
@@ -34,8 +33,6 @@ import org.apache.parquet.schema.Type.Repetition;
  */
 abstract public class ColumnIO {
 
-  static final boolean DEBUG = Log.DEBUG;
-
   private final GroupColumnIO parent;
   private final Type type;
   private final String name;

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/io/GroupColumnIO.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/io/GroupColumnIO.java 
b/parquet-column/src/main/java/org/apache/parquet/io/GroupColumnIO.java
index 1efe0d1..14b8426 100644
--- a/parquet-column/src/main/java/org/apache/parquet/io/GroupColumnIO.java
+++ b/parquet-column/src/main/java/org/apache/parquet/io/GroupColumnIO.java
@@ -27,8 +27,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.schema.GroupType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Group level of the IO structure
@@ -38,7 +39,7 @@ import org.apache.parquet.schema.GroupType;
  *
  */
 public class GroupColumnIO extends ColumnIO {
-  private static final Log LOG = Log.getLog(GroupColumnIO.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(GroupColumnIO.class);
 
   private final Map<String, ColumnIO> childrenByName = new HashMap<String, 
ColumnIO>();
   private final List<ColumnIO> children = new ArrayList<ColumnIO>();

http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/8e2009b8/parquet-column/src/main/java/org/apache/parquet/io/MessageColumnIO.java
----------------------------------------------------------------------
diff --git 
a/parquet-column/src/main/java/org/apache/parquet/io/MessageColumnIO.java 
b/parquet-column/src/main/java/org/apache/parquet/io/MessageColumnIO.java
index f962105..67efdb3 100644
--- a/parquet-column/src/main/java/org/apache/parquet/io/MessageColumnIO.java
+++ b/parquet-column/src/main/java/org/apache/parquet/io/MessageColumnIO.java
@@ -25,12 +25,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.parquet.Log;
 import org.apache.parquet.column.ColumnWriteStore;
 import org.apache.parquet.column.ColumnWriter;
 import org.apache.parquet.column.impl.ColumnReadStoreImpl;
 import org.apache.parquet.column.page.PageReadStore;
-import org.apache.parquet.column.values.dictionary.IntList;
 import org.apache.parquet.filter.UnboundRecordFilter;
 import org.apache.parquet.filter2.compat.FilterCompat;
 import org.apache.parquet.filter2.compat.FilterCompat.Filter;
@@ -49,6 +47,9 @@ import org.apache.parquet.schema.MessageType;
 
 import it.unimi.dsi.fastutil.ints.IntArrayList;
 import it.unimi.dsi.fastutil.ints.IntIterator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import static org.apache.parquet.Preconditions.checkNotNull;
 
 /**
@@ -58,9 +59,9 @@ import static org.apache.parquet.Preconditions.checkNotNull;
  * @author Julien Le Dem
  */
 public class MessageColumnIO extends GroupColumnIO {
-  private static final Log logger = Log.getLog(MessageColumnIO.class);
+  private static final Logger LOG = 
LoggerFactory.getLogger(MessageColumnIO.class);
 
-  private static final boolean DEBUG = Log.DEBUG;
+  private static final boolean DEBUG = LOG.isDebugEnabled();
 
   private List<PrimitiveColumnIO> leaves;
 
@@ -261,20 +262,24 @@ public class MessageColumnIO extends GroupColumnIO {
       r = new int[maxDepth];
     }
 
-    public void printState() {
-      log(currentLevel + ", " + fieldsWritten[currentLevel] + ": " + 
Arrays.toString(currentColumnIO.getFieldPath()) + " r:" + r[currentLevel]);
-      if (r[currentLevel] > currentColumnIO.getRepetitionLevel()) {
-        // sanity check
-        throw new InvalidRecordException(r[currentLevel] + "(r) > " + 
currentColumnIO.getRepetitionLevel() + " ( schema r)");
+    private void printState() {
+      if (DEBUG) {
+        log(currentLevel + ", " + fieldsWritten[currentLevel] + ": " + 
Arrays.toString(currentColumnIO.getFieldPath()) + " r:" + r[currentLevel]);
+        if (r[currentLevel] > currentColumnIO.getRepetitionLevel()) {
+          // sanity check
+          throw new InvalidRecordException(r[currentLevel] + "(r) > " + 
currentColumnIO.getRepetitionLevel() + " ( schema r)");
+        }
       }
     }
 
-    private void log(Object m) {
-      String indent = "";
-      for (int i = 0; i < currentLevel; ++i) {
-        indent += "  ";
+    private void log(Object message, Object...parameters) {
+      if (DEBUG) {
+        String indent = "";
+        for (int i = 0; i < currentLevel; ++i) {
+          indent += "  ";
+        }
+        LOG.debug(indent + message, parameters);
       }
-      logger.debug(indent + m);
     }
 
     @Override
@@ -298,7 +303,7 @@ public class MessageColumnIO extends GroupColumnIO {
     @Override
     public void startField(String field, int index) {
       try {
-        if (DEBUG) log("startField(" + field + ", " + index + ")");
+        if (DEBUG) log("startField({}, {})", field, index);
         currentColumnIO = ((GroupColumnIO) currentColumnIO).getChild(index);
         emptyField = true;
         if (DEBUG) printState();
@@ -309,7 +314,7 @@ public class MessageColumnIO extends GroupColumnIO {
 
     @Override
     public void endField(String field, int index) {
-      if (DEBUG) log("endField(" + field + ", " + index + ")");
+      if (DEBUG) log("endField({}, {})",field ,index);
       currentColumnIO = currentColumnIO.getParent();
       if (emptyField) {
         throw new ParquetEncodingException("empty fields are illegal, the 
field should be ommited completely instead");
@@ -326,8 +331,7 @@ public class MessageColumnIO extends GroupColumnIO {
           try {
             ColumnIO undefinedField = ((GroupColumnIO) 
currentColumnIO).getChild(i);
             int d = currentColumnIO.getDefinitionLevel();
-            if (DEBUG)
-              log(Arrays.toString(undefinedField.getFieldPath()) + 
".writeNull(" + r[currentLevel] + "," + d + ")");
+            if (DEBUG) log(Arrays.toString(undefinedField.getFieldPath()) + 
".writeNull(" + r[currentLevel] + "," + d + ")");
             writeNull(undefinedField, r[currentLevel], d);
           } catch (RuntimeException e) {
             throw new ParquetEncodingException("error while writing nulls for 
fields of indexes " + i + " . current index: " + fieldsWritten[currentLevel], 
e);
@@ -372,7 +376,7 @@ public class MessageColumnIO extends GroupColumnIO {
 
     private void setRepetitionLevel() {
       r[currentLevel] = currentColumnIO.getRepetitionLevel();
-      if (DEBUG) log("r: " + r[currentLevel]);
+      if (DEBUG) log("r: {}", r[currentLevel]);
     }
 
     @Override
@@ -428,7 +432,7 @@ public class MessageColumnIO extends GroupColumnIO {
 
     @Override
     public void addInteger(int value) {
-      if (DEBUG) log("addInt(" + value + ")");
+      if (DEBUG) log("addInt({})", value);
       emptyField = false;
       getColumnWriter().write(value, r[currentLevel], 
currentColumnIO.getDefinitionLevel());
 
@@ -438,7 +442,7 @@ public class MessageColumnIO extends GroupColumnIO {
 
     @Override
     public void addLong(long value) {
-      if (DEBUG) log("addLong(" + value + ")");
+      if (DEBUG) log("addLong({})", value);
       emptyField = false;
       getColumnWriter().write(value, r[currentLevel], 
currentColumnIO.getDefinitionLevel());
 
@@ -448,7 +452,7 @@ public class MessageColumnIO extends GroupColumnIO {
 
     @Override
     public void addBoolean(boolean value) {
-      if (DEBUG) log("addBoolean(" + value + ")");
+      if (DEBUG) log("addBoolean({})", value);
       emptyField = false;
       getColumnWriter().write(value, r[currentLevel], 
currentColumnIO.getDefinitionLevel());
 
@@ -458,7 +462,7 @@ public class MessageColumnIO extends GroupColumnIO {
 
     @Override
     public void addBinary(Binary value) {
-      if (DEBUG) log("addBinary(" + value.length() + " bytes)");
+      if (DEBUG) log("addBinary({} bytes)", value.length());
       emptyField = false;
       getColumnWriter().write(value, r[currentLevel], 
currentColumnIO.getDefinitionLevel());
 
@@ -468,7 +472,7 @@ public class MessageColumnIO extends GroupColumnIO {
 
     @Override
     public void addFloat(float value) {
-      if (DEBUG) log("addFloat(" + value + ")");
+      if (DEBUG) log("addFloat({})", value);
       emptyField = false;
       getColumnWriter().write(value, r[currentLevel], 
currentColumnIO.getDefinitionLevel());
 
@@ -478,7 +482,7 @@ public class MessageColumnIO extends GroupColumnIO {
 
     @Override
     public void addDouble(double value) {
-      if (DEBUG) log("addDouble(" + value + ")");
+      if (DEBUG) log("addDouble({})", value);
       emptyField = false;
       getColumnWriter().write(value, r[currentLevel], 
currentColumnIO.getDefinitionLevel());
 

Reply via email to