class CF::App::Logs

Public Instance Methods

crashlogs() click to toggle source
# File lib/cf/cli/app/logs.rb, line 39
def crashlogs
  app = input[:app]

  crashes = app.crashes

  fail "No crashed instances found." if crashes.empty?

  most_recent = crashes.sort_by(&:since).last
  show_instance_logs(app, most_recent)
end
logs() click to toggle source
# File lib/cf/cli/app/logs.rb, line 12
def logs
  app = input[:app]

  instances =
    if input[:all] || input[:instance] == "all"
      app.instances
    else
      app.instances.select { |i| i.id == input[:instance] }
    end

  if instances.empty?
    if input[:all]
      fail "No instances found."
    else
      fail "Instance #{app.name} \##{input[:instance]} not found."
    end
  end

  spaced(instances) do |i|
    show_instance_logs(app, i)
  end
end
show_instance_logs(app, i) click to toggle source
# File lib/cf/cli/app/logs.rb, line 50
def show_instance_logs(app, i)
  return unless i.id

  logs =
    with_progress(
        "Getting logs for #{c(app.name, :name)} " +
          c("\##{i.id}", :instance)) do
      i.files("logs")
    end

  line unless quiet?

  spaced(logs) do |log|
    begin
      body =
        with_progress("Reading " + b(log.join("/"))) do |s|
          i.file(*log)
        end

      lines body
      line unless body.empty?
    rescue CFoundry::NotFound
    end
  end
end