@@ -15,6 +15,27 @@ class @AgentShowPage |
||
15 | 15 |
$("#logs .refresh, #logs .clear").hide() |
16 | 16 |
$.get "/agents/#{agentId}/logs", (html) => |
17 | 17 |
$("#logs .logs").html html |
18 |
+ $("#logs .logs .show-log-details").each -> |
|
19 |
+ $button = $(this) |
|
20 |
+ $button.on 'click', (e) -> |
|
21 |
+ e.preventDefault() |
|
22 |
+ $("body").append """ |
|
23 |
+ <div class="modal fade" tabindex="-1" id='dynamic-modal' role="dialog" aria-labelledby="dynamic-modal-label" aria-hidden="true"> |
|
24 |
+ <div class="modal-dialog modal-lg"> |
|
25 |
+ <div class="modal-content"> |
|
26 |
+ <div class="modal-header"> |
|
27 |
+ <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> |
|
28 |
+ <h4 class="modal-title" id="dynamic-modal-label"></h4> |
|
29 |
+ </div> |
|
30 |
+ <div class="modal-body"><pre></pre></div> |
|
31 |
+ </div> |
|
32 |
+ </div> |
|
33 |
+ </div> |
|
34 |
+ """ |
|
35 |
+ $('#dynamic-modal').find('.modal-title').text $button.data('modal-title') |
|
36 |
+ $('#dynamic-modal').find('.modal-body pre').text $button.data('modal-content') |
|
37 |
+ $('#dynamic-modal').modal('show').on 'hidden.bs.modal', -> $('#dynamic-modal').remove() |
|
38 |
+ |
|
18 | 39 |
$("#logs .spinner").stop(true, true).fadeOut -> |
19 | 40 |
$("#logs .refresh, #logs .clear").show() |
20 | 41 |
|
@@ -29,15 +29,19 @@ body { padding-top: 60px; } |
||
29 | 29 |
|
30 | 30 |
/* Rails scaffold style compatibility */ |
31 | 31 |
#error_explanation { |
32 |
- @extend .alert; |
|
33 |
- @extend .alert-error; |
|
34 |
- @extend .alert-block; |
|
32 |
+ color: #f00; |
|
33 |
+ ul { |
|
34 |
+ list-style: none; |
|
35 |
+ margin: 0 0 18px 0; |
|
36 |
+ } |
|
35 | 37 |
} |
36 | 38 |
|
37 | 39 |
.field_with_errors { |
38 |
- @extend .control-group.error; |
|
40 |
+ @extend .has-error; |
|
39 | 41 |
} |
40 | 42 |
|
43 |
+.modal-body pre { white-space: pre-wrap; } |
|
44 |
+ |
|
41 | 45 |
.select2 { |
42 | 46 |
float: none !important; |
43 | 47 |
margin-left: 0 !important; |
@@ -384,7 +384,7 @@ class Agent < ActiveRecord::Base |
||
384 | 384 |
agent.last_receive_at = Time.now |
385 | 385 |
agent.save! |
386 | 386 |
rescue => e |
387 |
- agent.error "Exception during receive: #{e.message} -- #{e.backtrace}" |
|
387 |
+ agent.error "Exception during receive. #{e.message}: #{e.backtrace.join("\n")}" |
|
388 | 388 |
raise |
389 | 389 |
end |
390 | 390 |
end |
@@ -422,7 +422,7 @@ class Agent < ActiveRecord::Base |
||
422 | 422 |
agent.last_check_at = Time.now |
423 | 423 |
agent.save! |
424 | 424 |
rescue => e |
425 |
- agent.error "Exception during check: #{e.message} -- #{e.backtrace}" |
|
425 |
+ agent.error "Exception during check. #{e.message}: #{e.backtrace.join("\n")}" |
|
426 | 426 |
raise |
427 | 427 |
end |
428 | 428 |
end |
@@ -32,6 +32,6 @@ class AgentLog < ActiveRecord::Base |
||
32 | 32 |
protected |
33 | 33 |
|
34 | 34 |
def truncate_message |
35 |
- self.message = message[0...2048] if message.present? |
|
35 |
+ self.message = message[0...10_000] if message.present? |
|
36 | 36 |
end |
37 | 37 |
end |
@@ -209,7 +209,7 @@ module Agents |
||
209 | 209 |
} |
210 | 210 |
end |
211 | 211 |
rescue => e |
212 |
- error e.message |
|
212 |
+ error "Error when fetching url: #{e.message}\n#{e.backtrace.join("\n")}" |
|
213 | 213 |
end |
214 | 214 |
|
215 | 215 |
def receive(incoming_events) |
@@ -3,7 +3,7 @@ |
||
3 | 3 |
<tr> |
4 | 4 |
<th>Message</th> |
5 | 5 |
<th>When</th> |
6 |
- <th></th> |
|
6 |
+ <th width="200px"></th> |
|
7 | 7 |
</tr> |
8 | 8 |
|
9 | 9 |
<% @logs.each do |log| %> |
@@ -24,6 +24,8 @@ |
||
24 | 24 |
<% else %> |
25 | 25 |
<%= link_to 'Event Out', '#', class: "btn btn-default disabled" %> |
26 | 26 |
<% end %> |
27 |
+ |
|
28 |
+ <%= link_to 'Details', '#', :class => "btn btn-default show-log-details", :data => { :'modal-title' => log.level >= 4 ? 'Error' : 'Info', :'modal-content' => log.message } %> |
|
27 | 29 |
</div> |
28 | 30 |
</td> |
29 | 31 |
</tr> |
@@ -44,9 +44,9 @@ describe AgentLog do |
||
44 | 44 |
|
45 | 45 |
it "truncates message to a reasonable length" do |
46 | 46 |
log = AgentLog.new(:agent => agents(:jane_website_agent), :level => 3) |
47 |
- log.message = "a" * 3000 |
|
47 |
+ log.message = "a" * 11_000 |
|
48 | 48 |
log.save! |
49 |
- expect(log.message.length).to eq(2048) |
|
49 |
+ expect(log.message.length).to eq(10_000) |
|
50 | 50 |
end |
51 | 51 |
|
52 | 52 |
describe "#log_for_agent" do |