Sha256: 4e347de2b4a1f2181a9e128b7bfecc577f1c857c2ddcb07fea0a6add687375eb

Contents?: true

Size: 1.18 KB

Versions: 1

Compression:

Stored size: 1.18 KB

Contents

require 'time'
require 'logger'

module Wamp
  module Client
    module Logging

      LOG_LEVEL_LOOKUP = {
          error: Logger::ERROR,
          debug: Logger::DEBUG,
          info: Logger::INFO,
          warn: Logger::WARN,
      }

      class Pretty < Logger::Formatter
        def call(severity, time, program_name, message)
          "#{time.utc.iso8601(3)} #{::Process.pid} #{severity[0]}: #{message}\n"
        end
      end

      class WithoutTimestamp < Pretty
        def call(severity, time, program_name, message)
          "#{::Process.pid} #{severity[0]}: #{message}\n"
        end
      end

      # Returns the logger object
      #
      def self.logger
        unless defined?(@logger)
          $stdout.sync = true unless ENV['RAILS_ENV'] == "production"
          @logger = Logger.new $stdout
          @logger.level = Logger::INFO
          @logger.formatter = ENV['DYNO'] ? WithoutTimestamp.new : Pretty.new
        end
        @logger
      end

      # Sets the log level
      #
      # @param log_level [Symbol] - the desired log level
      def self.log_level=(log_level)
        self.logger.level = LOG_LEVEL_LOOKUP[log_level.to_sym] || :info
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
wamp_client-0.2.2 lib/wamp/client/logging.rb