Sha256: 1f5e5588643e0c793fa58e550f8710665aa4bdadb6ffda01e2bc99e274f08975

Contents?: true

Size: 1.22 KB

Versions: 14

Compression:

Stored size: 1.22 KB

Contents

module AppBuilder
  class Logger < ::Logger
    class Formatter < ::Logger::Formatter
      Format = "%s\t%s\t%d\t%s\n".freeze

      def call(severity, time, progname, msg)
        Format % [severity, format_datetime(time), $$, msg2str(msg)]
      end

      private

        def format_datetime(time)
          time.strftime(@datetime_format || "%F %H:%M:%S.%6N".freeze)
        end
    end

    def initialize(logdev, shift_age = 0, shift_size = 1048576, level: DEBUG,
                 progname: nil, formatter: nil, datetime_format: nil,
                 shift_period_suffix: '%Y%m%d')
      super
      @default_formatter = Formatter.new
    end

    def format_message(severity, datetime, progname, msg)
      apply_severity_color(
        severity,
        (@formatter || @default_formatter).call(severity, datetime, progname, msg),
      )
    end

    private

      def apply_severity_color(severity, msg)
        case severity
        when "DEBUG".freeze
          "\033[2m#{msg}\033[m"
        when "INFO".freeze
          "\033[32m#{msg}\033[m"
        when "WARN".freeze
          "\033[33m#{msg}\033[m"
        when "ERROR".freeze, "FATAL".freeze
          "\033[31m#{msg}\033[m"
        else
          msg
        end
      end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
app_builder-0.2.5 lib/app_builder/logger.rb
app_builder-0.2.4 lib/app_builder/logger.rb
app_builder-0.2.3 lib/app_builder/logger.rb
app_builder-0.2.2 lib/app_builder/logger.rb
app_builder-0.2.1 lib/app_builder/logger.rb
app_builder-0.2.0 lib/app_builder/logger.rb
app_builder-0.1.10 lib/app_builder/logger.rb
app_builder-0.1.9 lib/app_builder/logger.rb
app_builder-0.1.8 lib/app_builder/logger.rb
app_builder-0.1.7 lib/app_builder/logger.rb
app_builder-0.1.6 lib/app_builder/logger.rb
app_builder-0.1.5 lib/app_builder/logger.rb
app_builder-0.1.4 lib/app_builder/logger.rb
app_builder-0.1.3 lib/app_builder/logger.rb