lib/kontena/cli/grids/logs_command.rb in kontena-cli-0.11.7 vs lib/kontena/cli/grids/logs_command.rb in kontena-cli-0.12.0
- old
+ new
@@ -1,12 +1,13 @@
module Kontena::Cli::Grids
class LogsCommand < Clamp::Command
include Kontena::Cli::Common
- option ["-f", "--follow"], :flag, "Follow (tail) logs", default: false
+ option ["-t", "--tail"], :flag, "Tail (follow) logs", default: false
option ["-s", "--search"], "SEARCH", "Search from logs"
option "--lines", "LINES", "Number of lines to show from the end of the logs"
+ option "--since", "SINCE", "Show logs since given timestamp"
option "--node", "NODE", "Filter by node name", multivalued: true
option "--service", "SERVICE", "Filter by service name", multivalued: true
option ["-c", "--container"], "CONTAINER", "Filter by container", multivalued: true
def execute
@@ -17,13 +18,13 @@
query_params[:nodes] = node_list.join(",") unless node_list.empty?
query_params[:services] = service_list.join(",") unless service_list.empty?
query_params[:containers] = container_list.join(",") unless container_list.empty?
query_params[:search] = search if search
query_params[:limit] = lines if lines
+ query_params[:since] = since if since
-
- if follow?
+ if tail?
@buffer = ''
query_params[:follow] = 1
stream_logs(token, query_params)
else
list_logs(token, query_params)
@@ -32,10 +33,14 @@
def list_logs(token, query_params)
result = client(token).get("grids/#{current_grid}/container_logs", query_params)
result['logs'].each do |log|
color = color_for_container(log['name'])
- puts "#{log['name'].colorize(color)} | #{log['data']}"
+ prefix = ""
+ prefix << "#{log['created_at']} "
+ prefix << "#{log['name']}:"
+ prefix = prefix.colorize(color)
+ puts "#{prefix} #{log['data']}"
end
end
def stream_logs(token, query_params)
streamer = lambda do |chunk, remaining_bytes, total_bytes|