Sha256: 2714d77dfaa534069db3498b495e6bfebe7a790a819cb184f74057c69d912035

Contents?: true

Size: 797 Bytes

Versions: 1

Compression:

Stored size: 797 Bytes

Contents

require_relative 'json_formatter'

module RailsStdoutJsonLogging
  class StdoutLogger < defined?(::ActiveSupport::Logger) ? ::ActiveSupport::Logger : ::Logger
    include ::LoggerSilence if defined?(::LoggerSilence)
  end

  class Rails
    def self.heroku_stdout_logger
      logger           = StdoutLogger.new(STDOUT)
      logger           = ActiveSupport::TaggedLogging.new(logger) if defined?(ActiveSupport::TaggedLogging)
      logger.formatter = JsonFormatter.new
      logger.level     = StdoutLogger.const_get(log_level)
      logger
    end

    def self.log_level
      ([(ENV['LOG_LEVEL'] || ::Rails.application.config.log_level).to_s.upcase, "INFO"] & %w[DEBUG INFO WARN ERROR FATAL UNKNOWN]).compact.first
    end

    def self.set_logger
      STDOUT.sync = true
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails_stdout_json_logging-0.1.5 lib/rails_stdout_json_logging/rails.rb