logster 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -1
- data/assets/javascript/app.js +9 -1
- data/assets/javascript/templates/index.handlebars +2 -1
- data/assets/stylesheets/app.css +10 -1
- data/lib/logster/message.rb +5 -1
- data/lib/logster/middleware/viewer.rb +12 -0
- data/lib/logster/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c232a36182ddcf075324915beeb9be8be77acb4c
|
4
|
+
data.tar.gz: d761886b1f2ad2942fc1a49b2a17d9fb6069263e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35f5c15dc4a5b5f1e71f1d9c088d31e37c42bb7fceb545f44e6d059291dddfae45a5bed19b70edfbc3078bb8dfd0cd51eab050e743ef42718ae036f49c261064
|
7
|
+
data.tar.gz: f49ec022a79e6fab55ea4b0fdbcdd54d6778fa0059193ab325dc88e0b6585b64cb798733612ee2a8846cc6d99d461f3fb8c13248e5b0f28adbf6bf4ad43a0803
|
data/README.md
CHANGED
@@ -57,7 +57,7 @@ Logster UI is built using [Ember.js](http://emberjs.com/)
|
|
57
57
|
- Feature: Store backtraces, allow people to view them in the GUI
|
58
58
|
- 2014-05-12: Version 0.0.5
|
59
59
|
- Feature: We now log basic rack environment with the messages
|
60
|
-
-
|
60
|
+
- Add your own with Logster.add_to_env(env, key, value)
|
61
61
|
- 2014-05-12: Version 0.0.6
|
62
62
|
- Add referer to env
|
63
63
|
- 2014-05-13: Version 0.0.7
|
@@ -70,3 +70,7 @@ Logster UI is built using [Ember.js](http://emberjs.com/)
|
|
70
70
|
- Correct context for error reporting
|
71
71
|
- Clean up backtraces of reported exceptions
|
72
72
|
- Report params in env tab
|
73
|
+
- 2014-07-04: Version 0.0.12
|
74
|
+
- Feature: Able to share logs, at /logs/show/(hexdigits)
|
75
|
+
- Add protecting logs, so they aren't deleted when old (for use with sharing)
|
76
|
+
- Restructured Redis data model
|
data/assets/javascript/app.js
CHANGED
@@ -202,7 +202,8 @@ App.MessageCollection = Em.Object.extend({
|
|
202
202
|
loadMore: function(){
|
203
203
|
|
204
204
|
var messages = this.get("messages");
|
205
|
-
if(messages.length === 0){
|
205
|
+
if (messages.length === 0) {
|
206
|
+
this.load({});
|
206
207
|
return;
|
207
208
|
}
|
208
209
|
|
@@ -300,6 +301,13 @@ App.IndexController = Em.Controller.extend({
|
|
300
301
|
return this.get('model').loadMore();
|
301
302
|
},
|
302
303
|
|
304
|
+
clear: function() {
|
305
|
+
var self = this;
|
306
|
+
App.ajax("/clear", { type: "POST" }).success(function() {
|
307
|
+
self.get('model').reload();
|
308
|
+
});
|
309
|
+
},
|
310
|
+
|
303
311
|
protect: function(message) {
|
304
312
|
this.get('currentMessage').protect().success(function() {
|
305
313
|
self.transitionToRoute("show", {id: self.get('key')});
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<tbody>
|
11
11
|
{{#if model.moreBefore}}
|
12
12
|
<tr {{action showMoreBefore}} class="show-more">
|
13
|
-
<td colspan=
|
13
|
+
<td colspan=4>{{model.totalBefore}} more</td>
|
14
14
|
</tr>
|
15
15
|
{{/if}}
|
16
16
|
{{each model.messages itemViewClass="App.MessageView"}}
|
@@ -45,5 +45,6 @@
|
|
45
45
|
<label class="search">
|
46
46
|
{{input type="textfield" placeholder="Search" value=search}}
|
47
47
|
</label>
|
48
|
+
<a class="clear" href {{action clear}}>Clear logs</a>
|
48
49
|
</div>
|
49
50
|
</div>
|
data/assets/stylesheets/app.css
CHANGED
@@ -68,9 +68,10 @@ th.time{
|
|
68
68
|
color: #777;
|
69
69
|
}
|
70
70
|
|
71
|
-
.search input {
|
71
|
+
.action-panel .search input {
|
72
72
|
border: 1px solid #DDD;
|
73
73
|
padding: 3px;
|
74
|
+
vertical-align: middle;
|
74
75
|
}
|
75
76
|
|
76
77
|
.regex input {
|
@@ -180,6 +181,14 @@ tr.show-more {
|
|
180
181
|
position: relative;
|
181
182
|
top: -1px;
|
182
183
|
margin-left: 20px;
|
184
|
+
vertical-align: sub;
|
185
|
+
}
|
186
|
+
|
187
|
+
.action-panel .clear {
|
188
|
+
position: relative;
|
189
|
+
top: -1px;
|
190
|
+
margin-left: 50px;
|
191
|
+
vertical-align: middle;
|
183
192
|
}
|
184
193
|
|
185
194
|
#log-table {
|
data/lib/logster/message.rb
CHANGED
@@ -63,12 +63,16 @@ module Logster
|
|
63
63
|
|
64
64
|
def self.populate_from_env(env)
|
65
65
|
env[LOGSTER_ENV] ||= begin
|
66
|
+
unless env.include? "rack.input"
|
67
|
+
# Not a web request
|
68
|
+
return env
|
69
|
+
end
|
66
70
|
scrubbed = {}
|
67
71
|
request = Rack::Request.new(env)
|
68
72
|
params = {}
|
69
73
|
request.params.each do |k,v|
|
70
74
|
if k.include? "password"
|
71
|
-
params[k] = "[
|
75
|
+
params[k] = "[redacted]"
|
72
76
|
else
|
73
77
|
params[k] = v[0..100]
|
74
78
|
end
|
@@ -36,6 +36,8 @@ module Logster
|
|
36
36
|
|
37
37
|
if resource =~ /\.js$|\.handlebars$|\.css$/
|
38
38
|
env[PATH_INFO] = resource
|
39
|
+
# accl redirect is going to be trouble, ensure its bypassed
|
40
|
+
env['sendfile.type'] = ''
|
39
41
|
@fileserver.call(env)
|
40
42
|
elsif resource.start_with?("/messages.json")
|
41
43
|
serve_messages(Rack::Request.new(env))
|
@@ -61,6 +63,16 @@ module Logster
|
|
61
63
|
return [500, {}, ["Failed"]]
|
62
64
|
end
|
63
65
|
end
|
66
|
+
|
67
|
+
elsif resource =~ /\/clear$/
|
68
|
+
puts env
|
69
|
+
puts env[REQUEST_METHOD]
|
70
|
+
if env[REQUEST_METHOD] != "POST"
|
71
|
+
return [405, {}, ["GET not allowed for /clear"]]
|
72
|
+
end
|
73
|
+
Logster.store.clear
|
74
|
+
return [200, {}, ["Messages cleared"]]
|
75
|
+
|
64
76
|
elsif resource =~ /\/show\/([0-9a-f]+)(\.json)?$/
|
65
77
|
key = $1
|
66
78
|
json = $2 == ".json"
|
data/lib/logster/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- UI for viewing logs in Rack
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|