Sha256: 079b58ae286e2d76adba37df3cb9aed33a0c6e608dd49732f72fce2e8182a6e9

Contents?: true

Size: 1.5 KB

Versions: 65

Compression:

Stored size: 1.5 KB

Contents

require 'English'

module Dynflow
  module LoggerAdapters
    class Simple < Abstract
      require 'logger'

      attr_reader :logger, :action_logger, :dynflow_logger

      def initialize(output = $stdout, level = Logger::DEBUG, formatters = [Formatters::Exception])
        @logger           = Logger.new(output)
        @logger.level     = level
        @logger.formatter = method(:formatter).to_proc
        @action_logger    = apply_formatters ProgNameWrapper.new(@logger, ' action'), formatters
        @dynflow_logger   = apply_formatters ProgNameWrapper.new(@logger, 'dynflow'), formatters
      end

      def level
        @logger.level
      end

      def level=(v)
        @logger.level = v
      end

      private

      def formatter(severity, datetime, prog_name, msg)
        format "[%s #%d] %5s -- %s%s\n",
               datetime.strftime('%Y-%m-%d %H:%M:%S.%L'),
               $PID,
               severity,
               (prog_name ? prog_name + ': ' : ''),
               msg.to_s
      end

      class ProgNameWrapper
        def initialize(logger, prog_name)
          @logger    = logger
          @prog_name = prog_name
        end

        { fatal: 4, error: 3, warn: 2, info: 1, debug: 0 }.each do |method, level|
          define_method method do |message, &block|
            @logger.add level, message, @prog_name, &block
          end
        end

        def level=(v)
          @logger.level = v
        end

        def level
          @logger.level
        end
      end
    end
  end
end

Version data entries

65 entries across 65 versions & 1 rubygems

Version Path
dynflow-1.1.1 lib/dynflow/logger_adapters/simple.rb
dynflow-1.1.0 lib/dynflow/logger_adapters/simple.rb
dynflow-1.0.5 lib/dynflow/logger_adapters/simple.rb
dynflow-1.0.4 lib/dynflow/logger_adapters/simple.rb
dynflow-1.0.3 lib/dynflow/logger_adapters/simple.rb
dynflow-1.0.2 lib/dynflow/logger_adapters/simple.rb
dynflow-1.0.1 lib/dynflow/logger_adapters/simple.rb
dynflow-1.0.0 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.37 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.36 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.35 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.34 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.33 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.32 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.31 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.30 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.29 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.28 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.27 lib/dynflow/logger_adapters/simple.rb
dynflow-0.8.26 lib/dynflow/logger_adapters/simple.rb