diff options
Diffstat (limited to 'import/importer_base.rb')
-rw-r--r-- | import/importer_base.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/import/importer_base.rb b/import/importer_base.rb new file mode 100644 index 00000000..aa91ff6e --- /dev/null +++ b/import/importer_base.rb @@ -0,0 +1,43 @@ +#!/usr/bin/env ruby +# +# Base class for importers written in Ruby +# +# Copyright (C) 2014 Codethink Limited +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +module Importer + class Base + def log + @logger ||= create_logger + end + + private + + def create_logger + # Use the logger that was passed in from the 'main' import process, if + # detected. + log_fd = ENV['MORPH_LOG_FD'] + if log_fd + log_stream = IO.new(Integer(log_fd), 'w') + logger = Logger.new(log_stream) + logger.level = Logger::DEBUG + logger.formatter = proc { |severity, datetime, progname, msg| "#{msg}\n" } + else + logger = Logger.new('/dev/null') + end + logger + end + end +end |