Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
meta_request / lib / meta_request / log_interceptor.rb
Size: Mime:
require 'callsite'

module MetaRequest
  module LogInterceptor

    def debug(message = nil, &block)
      push_event(:debug, message)
      super
    end

    def info(message = nil, &block)
      push_event(:info, message)
      super
    end

    def warn(message = nil, &block)
      push_event(:warn, message)
      super
    end

    def error(message = nil, &block)
      push_event(:error, message)
      super
    end

    def fatal(message = nil, &block)
      push_event(:fatal, message)
      super
    end

    def unknown(message = nil, &block)
      push_event(:unknown, message)
      super
    end


    private
    def push_event(level, message)
      dev_log = AppRequest.current && caller[1].include?(MetaRequest.rails_root)
      if dev_log
        c = Callsite.parse(caller[1])
        payload = {:message => message, :level => level, :line => c.line, :filename => c.filename, :method => c.method}
        AppRequest.current.events << Event.new('meta_request.log', 0, 0, 0, payload)
      end
    rescue Exception => e
      MetaRequest.logger.fatal(e.message + "\n " + e.backtrace.join("\n "))
    end
  end
end