logster 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 880b7ec2d08afb765398135ffd2bf975e0007444
4
- data.tar.gz: 11d0172d19c11031054aa0cd8fcbe34eb0a140be
3
+ metadata.gz: d6db47d9f150d240a116b31797583819d771149a
4
+ data.tar.gz: d19dc6552f7e957c855fe08e226e5ddefb9e1b2e
5
5
  SHA512:
6
- metadata.gz: 5c916e319794b6f9d882f6c6b186ff758093d0235b18d63c909878988615ab0a71b3296ff5d8821e171cd14147ac81e2a10fe4c9b175c233b8380d7e667a8edf
7
- data.tar.gz: 80175a7e1879b62450c2e7f6dd976ef04f05f4d5630fa98cac2ba6361d3ad1dabed9406a9439a466c8fbfb011290e0e50dce1bb13652d3329faf6172be1d04ec
6
+ metadata.gz: f93c9f0bb6e788aa84de4fd92dca6705095a91f9208186e3edf70661647928aa6c05c4a5494be41ad9efe7346be0bdf177b874de26255de3985404e9dda8fedd
7
+ data.tar.gz: d7189a4045d001f03238942e7253521b2a456ae946ab94aea5a9ca0a4dc546f008a89ce2a7202056c12027bcb461ef86bcd74b4565a40ff4ca3d384cbe6997dc
data/README.md CHANGED
@@ -50,3 +50,5 @@ Logster UI is built using [Ember.js](http://emberjs.com/)
50
50
  - Add your on with Logster.add_to_env(env, key, value)
51
51
  - 2014-05-12: Version 0.0.6
52
52
  - Add referer to env
53
+ - 2014-05-13: Version 0.0.7
54
+ - Add support for javascript exception logging
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'rake' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'pathname'
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
11
+ Pathname.new(__FILE__).realpath)
12
+
13
+ require 'rubygems'
14
+ require 'bundler/setup'
15
+
16
+ load Gem.bin_path('rake', 'rake')
@@ -2,16 +2,42 @@ module Logster
2
2
  module Middleware
3
3
  class Reporter
4
4
 
5
+ PATH_INFO = "PATH_INFO".freeze
6
+
5
7
  def initialize(app, config={})
6
8
  @app = app
9
+ @error_path = (Logster.config.subdirectory || '/logs') + '/report_js_error'
7
10
  end
8
11
 
9
12
  def call(env)
10
13
  Thread.current[Logster::Logger::LOGSTER_ENV] = env
14
+
15
+ path = env[PATH_INFO]
16
+ if path == @error_path
17
+ return report_js_error(env)
18
+ end
19
+
11
20
  @app.call(env)
12
21
  ensure
13
22
  Thread.current[Logster::Logger::LOGSTER_ENV] = nil
14
23
  end
24
+
25
+ def report_js_error(env)
26
+ req = Rack::Request.new(env)
27
+ message = req["message"] || ""
28
+ message << "\nUrl: " << req["url"] if req["url"]
29
+ message << "\nLine: " << req["line"] if req["line"]
30
+ message << "\nColumn: " << req["column"] if req["column"]
31
+
32
+ backtrace = req["stacktrace"] || ""
33
+ Logster.store.report(::Logger::Severity::WARN,
34
+ "javascript",
35
+ message,
36
+ backtrace: backtrace,
37
+ env: env)
38
+ [200,{},["OK"]]
39
+ end
40
+
15
41
  end
16
42
  end
17
43
  end
@@ -1,5 +1,9 @@
1
1
  module Logster::Rails
2
2
 
3
+ # this magically registers logster.js in the asset pipeline
4
+ class Engine < Rails::Engine
5
+ end
6
+
3
7
  def self.set_logger(config)
4
8
  return unless Rails.env.development? || Rails.env.production?
5
9
 
@@ -23,13 +23,13 @@ module Logster
23
23
 
24
24
  message = Message.new(severity, progname, message)
25
25
 
26
- if opts && opts[:backtrace]
26
+ if opts && backtrace = opts[:backtrace]
27
27
  message.backtrace = backtrace
28
28
  else
29
29
  message.backtrace = caller.join("\n")
30
30
  end
31
31
 
32
- if opts && env=opts[:env]
32
+ if opts && env = opts[:env]
33
33
  message.populate_from_env(env)
34
34
  end
35
35
 
@@ -1,3 +1,3 @@
1
1
  module Logster
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -0,0 +1,30 @@
1
+ (function(){
2
+ var lastReport = null;
3
+
4
+ window.onerror = function(message, url, line, column, errorObj) {
5
+ debugger;
6
+ // never bother reporting more than once a minute
7
+ if(lastReport && new Date() - lastReport < 1000 * 60) {
8
+ return;
9
+ }
10
+
11
+ lastReport = new Date();
12
+
13
+ var err = {
14
+ message: message,
15
+ url: url,
16
+ line: line,
17
+ column: column
18
+ };
19
+
20
+ if(errorObj && errorObj.stack) {
21
+ err.stacktrace = errorObj.stack;
22
+ }
23
+
24
+ $.ajax("<%= Logster.config.subdirectory || '/logs' %>" + "/report_js_error",{
25
+ data: err,
26
+ type: "POST",
27
+ cache: false
28
+ });
29
+ };
30
+ })();
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.6
4
+ version: 0.0.7
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-05-12 00:00:00.000000000 Z
11
+ date: 2014-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -99,6 +99,7 @@ email:
99
99
  - sam.saffron@gmail.com
100
100
  executables:
101
101
  - guard
102
+ - rake
102
103
  extensions: []
103
104
  extra_rdoc_files: []
104
105
  files:
@@ -122,6 +123,7 @@ files:
122
123
  - assets/javascript/templates/message.handlebars
123
124
  - assets/stylesheets/app.css
124
125
  - bin/guard
126
+ - bin/rake
125
127
  - bower.json
126
128
  - lib/logster.rb
127
129
  - lib/logster/configuration.rb
@@ -137,6 +139,7 @@ files:
137
139
  - test/logster/test_logger.rb
138
140
  - test/logster/test_redis_store.rb
139
141
  - test/test_helper.rb
142
+ - vendor/assets/javascripts/logster.js.erb
140
143
  homepage: ''
141
144
  licenses:
142
145
  - MIT