old_contents: # encoding: utf-8
  
  """
  .. codeauthor:: Tsuyoshi Hombashi <gogogo.vm@gmail.com>
  """
  
  import logbook
  
  logger = logbook.Logger("pytablereader")
  
new_contents: # encoding: utf-8
  
  """
  .. codeauthor:: Tsuyoshi Hombashi <gogogo.vm@gmail.com>
  """
  
  from __future__ import absolute_import
  from __future__ import unicode_literals
  import abc
  
  import logbook
  import six
  
  
  logger = logbook.Logger("pytablereader")
  
  
  @six.add_metaclass(abc.ABCMeta)
  class LoggerInterface(object):
  
      @abc.abstractmethod
      def logging_load(self):  # pragma: no cover
          pass
  
  
  class BaseLogger(LoggerInterface):
  
      def __init__(self, loader):
          self._loader = loader
  
  
  class FileSourceLogger(BaseLogger):
  
      def logging_load(self):
          message = "loading {:s} {:s}: path={}".format(
              self._loader.format_name, self._loader.source_type,
              self._loader.source)
  
          try:
              message += ", encoding={}".format(self._loader.encoding)
          except AttributeError:
              pass
  
          logger.debug(message)
  
  
  class TextSourceLogger(BaseLogger):
  
      def logging_load(self):
          message = "loading {:s} {:s}".format(
              self._loader.format_name, self._loader.source_type)
  
          try:
              message += ", len={}".format(len(self._loader.source))
          except TypeError:
              pass
  
          try:
              message += ", encoding={}".format(self._loader.encoding)
          except AttributeError:
              pass
  
          logger.debug(message)
  
subject: Add logger classes