Sha256: 6983200f63308abfe5e8cd0a04c922f6a6b737e4c519278980adf620ca40b793

Contents?: true

Size: 1.34 KB

Versions: 4

Compression:

Stored size: 1.34 KB

Contents

module SlackBotManager
  module Logger
    def info(msg)
      logger.info(@id) { msg }
    end

    def debug(msg)
      logger.debug(@id) { msg }
    end

    def warning(msg)
      logger.warn(@id) { msg }
    end

    def error(msg)
      logger.error(@id) { msg }
    end

    class Formatter
      SEVERITY_TO_COLOR_MAP = {
        'DEBUG' => '0;37',
        'INFO' => '32',
        'WARN' => '33',
        'ERROR' => '31',
        'FATAL' => '31',
        'UNKNOWN' => '37'
      }.freeze

      def call(severity, timeat, progname, message)
        formatted_severity = format('%-5s', severity).strip
        formatted_time = timeat.strftime('%Y-%m-%d %H:%M:%S.') << timeat.usec.to_s[0..2].rjust(3)
        color = SEVERITY_TO_COLOR_MAP[severity]

        # Handle backtrace, if any
        msg = message.to_s
        message.backtrace.each { |n| msg << "\n   #{n}" } if message.respond_to?(:backtrace)

        [
          "\033[0;37m#{formatted_time}\033[0m",               # Formatted time
          "[\033[#{color}m#{formatted_severity}\033[0m]",     # Level
          "[PID:#{$PID}]",                                    # PID
          progname && progname != '' && "(#{progname})",      # Progname (team ID), if exists
          msg.strip                                           # Message
        ].compact.join(' ') + "\n"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
slack-bot-manager-0.1.0pre5 lib/slack-bot-manager/logger.rb
slack-bot-manager-0.1.0pre4 lib/slack-bot-manager/logger.rb
slack-bot-manager-0.1.0pre3 lib/slack-bot-manager/logger.rb
slack-bot-manager-0.1.0pre2 lib/slack-bot-manager/logger.rb